Cross-compiling errors

From Tuxation

Revision as of 02:50, 1 November 2007 by Dennis (Talk | contribs)
(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)

Error while loading shared libraries

While attempting a cross compile I got this error from the target.

Error while loading shared libraries .....

The problem was the location of the libgcc.s.so.1 library.

On the development Linux box it is located at /usr/arm/lib/ on the target device it is located in /lib

To correct the error a change to the compiler options is required.

"-Wl,-rpath /lib" is added.

-Wl passes an option to the linker.

-rpath DIR Add a directory to the runtime library search path. 
This is used when linking an ELF executable with shared objects. 
All `-rpath' arguments are concatenated and passed to the runtime linker, 
which uses them to locate shared objects at runtime.

If we browse the obj file via arm-linux-objdump -p "binaryfile" we see that the RPATH is now set correctly.

...
RPATH       /lib
...
Personal tools