未知的 GCC 链接器错误,但构建成功

Unknown GCC Linker error, but builds sucessfully

我正在尝试编译链接到 Eclipse C/C++ IDE 中的 FMOD 库的程序。我什至没有包含任何库的 headers,我只将共享库添加到项目依赖项中,但出现以下链接错误:

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 库之外并查找该错误,一般来说,我在 [=23= 上看不到很多匹配项] 对吧,好像错误是tailor-made给我带来的不便。这不应该是二进制文件的问题,因为我已经尝试了 FMOD 网站上可用的多个版本,它们都抛出相同的错误,而且我没有看到其他人在链接 [=26 时抱怨二进制抛出错误=].

Eclipse 可能参与了这场混乱,但我使用的是 GNU 工具链,即使我将 Eclipse 设置为 "stop on first build error",它仍然可以成功编译这些错误,就好像它们是幻影错误一样。

程序运行得很好,如果我够懒的话,我什至可以忽略这些错误。大多数情况下,我正在寻找关于这些错误意味着什么的任何提示或线索,因为对我来说,C++ 编译和链接工具是幕后黑手。

这只是一个警告,请参阅 https://sourceware.org/bugzilla/show_bug.cgi?id=25135

看起来 FMOD 有一个无效的符号 table,不过阅读那个错误报告似乎没有任何害处,只是有点神秘的警告(不包含关键词“警告” ").

黄金链接器似乎不会产生此警告,您可以使用 -fuse-ld=gold

启用它