我有同样的问题,大部分都解决了 .
问题是,一些so文件不包含可链接的代码,但包含ld链接器脚本 . 如果此链接描述文件包含绝对引用,则链接将失败 .
我编写了一个小的perl脚本,它将所有符号链接转换为相对链接,并将所以链接器脚本修补为相对路径 .
手动工作非常好,自动化过程使用perl生成tar文件 - 无需在raspberry文件系统上进行更改 .
tar将在sysroot文件夹中的主机上解压缩,所有链接都是固定的,所有这些文件都被修复 .
less /lib/arm-linux-gnueabihf/libc.so.6
你会看到:
/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-littlearm)
GROUP ( /lib/arm-linux-gnueabihf/libc.so.6 /usr/lib/arm-linux-gnueabihf/libc_nonshared.a AS_NEEDED ( /lib/arm-linux-gnueabihf/ld-linux-armhf.so.3 ) )
就在第一次测试时,我发现tar会将所有相对链接转换为绝对链接,但如果我列出tar文件,则一切都是相对正确的 .