我正在尝试编译一个链接到 Eclipse C/C++ IDE 中的 FMOD 库的程序。我什至没有包含任何库的标头,我只将共享库添加到项目依赖项中,并且出现以下链接错误:
Building target: Adventum
Invoking: GCC C++ Linker
g++-8 -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/GLFW" -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/Python" -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD" -o "Adventum" ./src/adventum/graphics/Display.o ./src/adventum/Main.o ./src/adventum/ScriptLoader.o -lglfw3 -lpython3.8 -lfmodL -ldl -lpthread -lX11 -lvulkan
/usr/bin/ld: /home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD/libfmodL.so: .dynsym local symbol at index 2 (>= sh_info of 2)
/usr/bin/ld: /home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD/libfmodL.so: .dynsym local symbol at index 3 (>= sh_info of 2)
/usr/bin/ld: /home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD/libfmodL.so: .dynsym local symbol at index 4 (>= sh_info of 2)
Finished building target: Adventum
抬头看.dynsym local symbol at index ...
没有给我任何线索,即使我将范围扩大到 FMOD 库之外并寻找该错误,一般来说,我在谷歌上没有看到太多关于它的点击,就好像该错误是为了给我带来不便而量身定制的。这不应该是二进制文件的问题,因为我已经尝试了 FMOD 网站上提供的多个版本,它们都抛出了相同的错误,而且我没有看到其他人抱怨在 Linux 上链接期间二进制文件抛出错误。
Eclipse 可能参与了这个混乱,但我正在使用 GNU 工具链,即使我将 Eclipse 设置为“在第一个构建错误时停止”,它仍然可以成功编译这些错误,就好像它们是幻影错误一样。
程序运行得很好,如果我足够懒的话,我什至可以忽略这些错误。大多数情况下,我正在寻找有关这些错误含义的任何提示或线索,因为对我来说,C++ 编译和链接工具是幕后黑手。
这只是一个警告,请参阅https://sourceware.org/bugzilla/show_bug.cgi?id=25135 https://sourceware.org/bugzilla/show_bug.cgi?id=25135
看起来 FMOD 有一个无效的符号表,但阅读该错误报告似乎没有任何危害,只是有点神秘的警告(不包含关键字“警告”)。
黄金链接器似乎不会产生此警告,您可以使用以下命令启用它-fuse-ld=gold
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)