【发布时间】:2016-12-08 05:49:48
【问题描述】:
尝试在 ubuntu 16.04 上编译 sfml 程序时遇到 ld 错误。这显然是一个已知问题,应该有一个解决方法,但我不明白它是什么......
ld吐出的错误是
hidden symbol `__cpu_model' in /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a(cpuinfo.o) is referenced by DSO
没有与此相关的代码 - 据我了解,如果要链接的程序包含 sf::Texture 和 sf::Sprite 等对象,则在所有使用 g++ 5 的 ubuntu 16.04 系统上都会产生此错误。 (我不知道比这更详细的了。)
我也尝试过使用 g++ 4.9 进行编译,但出现同样的错误。
我的编译行是g++-4.9 --std=c++11 -Wall main.cpp -lsfml-graphics -lsfml-window -lsfml-system -o a.out
有其他人遇到过这个错误并成功解决了吗?
【问题讨论】:
-
注意; C++11 支持的正确标志是
-std=c++11,而不是--std=c++11。与您的问题无关,只是想我会提到它.. -
@JesperJuhl 是吗?两者似乎都有效?为什么一个比另一个更正确?双破折号版本遵循常规的 linux 命令语法。
-
我将按照文档中的说明进行操作 - 自己尝试“man g++”并进行查找。
-
@JesperJuhl 很公平,我相信你
标签: c++ linker sfml ubuntu-16.04 g++-5