You may see an error such as the following when linking your application: Fatal error: L6044U: Invalid relocation #0 in foo.o(.text). Type 29 is reserved for ARM LINUX. This indicates that the object file was generated by a compiler that is newer than the version of the linker you are using. The tools are not forwards-compatible; that is, you cannot link objects from a newer compiler using an older version of armlink. The preferred solution is to use the version of armlink from the newest version of RVCT used to build any of your object files and libraries. Otherwise, recompile the code with the older compiler. If the error relates to an object file from the RVCT libraries (e.g. rt_div.o) this may be because the appropriate environment variable RVCTxxLIB (e.g. RVCT22LIB, RVCT30LIB or RVCT31LIB) points to a different version of the libraries than the linker you are using.
|