【发布时间】:2011-11-18 09:00:04
【问题描述】:
我正在尝试编译具有异国情调混合版本的动态库。 首先,我正在为机器人内部的 ADM geode 进行交叉编译,该工具链使用 gcc-4.3.3 的特定工具链,并且有自己的目录树用于查找其标头和链接库,但我使用了很多数字boost::numeric、blas 等库以及名为 jrl-dynamics 的机器人动态和运动学模型库,这会发送链接器错误。
当我编译时,首先,所有目标文件都生成没有问题(因为我破解了工具链包括制作符号链接),但在链接时我得到了如下错误:
/usr/lib/liblapack.so.3gf.0: undefined reference to `_gfortran_string_len_trim@GFORTRAN_1.0'
/usr/lib/liblapack.so.3gf.0: undefined reference to `_gfortran_concat_string@GFORTRAN_1.0'
和
/usr/lib/libjrl-dynamics.so.1.19.3-42-g8c6f: undefined reference to `std::ctype<char>::_M_widen_init() const@GLIBCXX_3.4.11'
我希望强制链接器找到像 _gfortran_string_len_trim y my 这样的符号 请求的 gfortran 版本是 gfortran2,实际上使用 reafelf 命令我找到了 lapack 请求的所有 simbol。但 -L/mypath/gfortran2 不起作用!!我得到了同样的错误。 我想知道链接器错误中的@是什么意思,elf文件说链接器要搜索符号???。
【问题讨论】: