gpt4 book ai didi

c++ - ld 链接器错误 "cpu model hidden symbol"

转载 作者:可可西里 更新时间:2023-11-01 15:10:06 34 4
gpt4 key购买 nike

尝试在 ubuntu 16.04 上编译 sfml 程序时出现 ld 错误。这显然是一个已知问题,应该有解决方法,但我不明白它是什么...

http://web.archive.org/web/20160509014317/https://gitlab.peach-bun.com/pinion/SFML/commit/3383b4a472f0bd16a8161fb8760cd3e6333f1782.patch

ld 吐出的错误是

hidden symbol `__cpu_model' in /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a(cpuinfo.o) is referenced by DSO

没有与此相关的代码 - 据我所知,如果要链接的程序包含诸如 sf::Texturesf::雪碧。 (我不知道比这更详细。)

我也试过用 g++ 4.9 编译,但出现同样的错误。

我的编译行是 g++-4.9 --std=c++11 -Wall main.cpp -lsfml-graphics -lsfml-window -lsfml-system -o a.out

有没有其他人遇到过这个错误并成功解决了它?

最佳答案

我不得不多次解决这个问题。您可以通过编辑文件 SFML/src/SFML/Graphics/CMakeLists.txt 来手动修复它,而不是应用补丁。在第 149 行,您会发现以下内容:

if(SFML_COMPILER_GCC)
set_source_files_properties(${SRCROOT}/ImageLoader.cpp PROPERTIES COMPILE_FLAGS -fno-strict-aliasing)
endif()

在 endif() 之后,插入以下内容:

if(SFML_COMPILER_GCC AND BUILD_SHARED_LIBS)
list(APPEND GRAPHICS_EXT_LIBS "-lgcc_s -lgcc")
endif()

然后,在顶级 SFML 文件夹中,运行以下命令:

mkdir build && cd build
cmake .. -DSFML_BUILD_EXAMPLES=ON -DSFML_BUILD_DOCS=ON
make
sudo make install
sudo ldconfig

这将在没有编译器错误的情况下构建和安装它。 (注意:如果您不需要文档或示例,请从 cmake 中删除 -D 标志)

关于c++ - ld 链接器错误 "cpu model hidden symbol",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38727800/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com