【发布时间】:2014-07-25 16:42:46
【问题描述】:
我使用的是 Ubuntu 14.04。我正在尝试编译这个项目OpenFP。问题是当我运行“configure”shell 并使用“make”编译它后,我收到以下错误。
/usr/bin/ld: openfp_extract-fft.o: 未定义对符号“cos@@GLIBC_2.2.5”的引用 //lib/x86_64-linux-gnu/libm.so.6:添加符号时出错:命令行中缺少 DSO collect2:错误:ld 返回 1 个退出状态 make[1]: *** [openfp_extract] 错误 1 make[1]: 离开目录`/home/murtaza/Desktop/openfp-1.3.2' make: *** [all] 错误 2
我认为问题是编译器无法隐式链接到“libm”,但我真的不明白在哪里附加 -lm 以使其工作。我在“makefile.am”中尝试过不同的位置。但是每次配置后我都会得到相同的结果。任何帮助将不胜感激。
【问题讨论】:
-
该错误似乎是您的 glibc 中缺少的符号:对符号“cos@@GLIBC_2.2.5”的未定义引用 为什么您认为这是与 libm 相关的链接问题?可能是 OpenFP 项目旨在与不同(旧?)版本的 glibc 链接
-
这与我解释的错误相同。 glibc 不会隐式链接到 libm。并且放置 -lm 的顺序也很重要。你应该把它放在最后。在生成 Makefile 时进行配置后,我在 LDFLAG 变量中附加了 -lm 标志。它奏效了。