从CodeSourcery armmel迁移到Linaro armhf编译器时出现的共享库问题



我正在将Xilinx Zynq板从CodeSourcery armel (gnueabi)工具链(从Vivado 2015.2)迁移到Linaro armhf,因此我们可以安装Debian/Ubuntu armhf (gnueabhf)。

当试图将dlopen()dlsym()共享库时,我们从dlerror()得到下一个错误:

/.../controller.so: undefined symbol: _ZTVN10__cxxabiv119__pointer_type_infoE

如果使用Linaro工具链,而使用CodeSourcery工具链编译的软件正常工作,则存在问题。

我检查了两个库中报告的符号,它都存在:

$ grep -r cxxabiv119__pointer_type_info .
./controller.so.armel.simbols:U _ZTVN10__cxxabiv119__pointer_type_infoE
./controller.so.armhf.simbols:U _ZTVN10__cxxabiv119__pointer_type_infoE

似乎如果控制器。所以只包含C代码(没有c++代码),它可以与Linaro正常工作。但区别可能在于语言之外。

问候,Iztok Jeras

这个问题没有简单的答案,最后我从交叉编译切换到QEMU模拟ARM环境中的本机编译器。这是许多树莓派用户建议的。另一方面,每一个交叉编译的解决方案都会暴露出一组新的问题。

相关内容

  • 没有找到相关文章

最新更新