我预先编译了arm-linux-gnueabihf GCC工具链的二进制文件。主机是x86_64,而目标是arm7架构。我能够使用这个交叉编译器交叉编译示例程序,但它无法与动态库链接。在主机上,我使用:
arm-linux-gnueabihf -c -o test test.c
使用ldd命令编译的可执行文件在主机和目标上显示以下输出:
ldd ./test
not a dynamic executable
但是,我使用相同的源代码并在目标上进行原生编译,我观察到:
ldd ./test
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6e29000)
/lib/ld-linux-armhf.so.3 (0xb6f18000)
在交叉编译的情况下,链接器的整个概念似乎很棘手。有交叉编译时链接共享动态库的标准方法吗?