我有预编译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)

在交叉编译的情况下,链接器的整个概念似乎很棘手 . 有交叉编译时链接共享动态库的标准方法吗?