I need your help

I'm a student from China. Our teacher bought us VEX robots. We have problem using easyC now. We can use easyC to download program to the microcontroller. But when we use the testcode ( .ecp file) to build program, the program says that a linking error has occured , and , there is nothing in the output window. Now we cannot compile our own program. Maybe we shall change our WinXP into English version? I have no idea. I was wodering if you can help me.

Reply to
??X-Gun
Loading thread data ...

There's a problem I remember running into with MPLAB that might be related to what you are seeing. I don't know if it exists for the EasyC as well or not.

Something that happens in the linker phase has a limit to how long the file names can be. And because it tries to use the entire path name, if you create a directory under your normal user account (which ends up as some place like C:\Documents and Settings\UserName\Workspace\VEX\whatever... ) the full path is too long and you don't get any error except a non obvious linker error.

One solution is to not put the files under your user account. Put them someplace like C:\VEX\whatever instead.

The other solution with MPLAB is to turn off the linker option associated with this. On MPLAB, I think it's found as Projects->Build Options->Project->MPLinker Linker->Suppress COD=file generation. If you set that option, I think it will no longer care about long path names because (I assume) it's only the COD files that have that limitation.

I don't know if the above applies to easyC, but it might be what you are seeing.

Another place to get help with VEX problems is the

formatting link
site and the web forums they have set up
formatting link

Reply to
Curt Welch

I read your reply today. Then I put the testcode file ( .ecp and .bds ) in the path C:\ . But it still doesn't work. When I compile the test program, the software pop-up a message with '...linking error...' on it. This really made us mad. Thank you all the same. :)

Reply to
蓝屏X-Gun

I am not familiar with VEX or EasyC. Howqever I did find this page.

formatting link
Look under :

Encryption In some cases, VEX code may contain proprietary algorithms which the author doesn't wish to become public knowledge. The compiler has a special set of directives to turn on/off crypting (#pragma crypt, and #pragma endcrypt). For example: float wavenoise(float height, float distance) { #pragma cryptreturnsin(distance)*height; #pragma endcrypt } When this code is compiled, the output of the compiler will be encrypted so that the code is reasonably secure. However, since VEX does not support dynamic linking (i.e. linking of pre-compiled code), there is a utility vcrypt which will encrypt the specific portions of the source files. The compiler can still read these encrypted files, however, the code contained will be secure. If the compiler detects encrypted source in its input stream, then the final output will be encrypted. This guarantees the integrity of the encryption (meaning it's not possible to reverse engineer an encrypted function by compiling it and decoding the assembler output). To generate encrypted object code, use the -c option on vcc.

The usage of the vcrypt program is:

Usage: vcrypt [source [destination]]If no source and destination files are specified, then input is read from stdin and output to stdout. If no destination file is specified, the crypted code is output to stdout. The #pragma crypt does not require a closing #pragma endcrypt. The two directives can be thought of as turning encryption on and off.

It is also possible to generate encrypted compiled code by using the -c option on the vcc command line.

Good Luck I hope this Helps.

Reply to
Robert Davidson

I found the solution to this problem. I installed an English version of WinXP. Then I ran EasyC and built the program successfully. Thanks for your help.

Reply to
蓝屏X-Gun

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.