【发布时间】:2020-05-11 22:23:54
【问题描述】:
我正在尝试编译一个链接到 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 库之外并查找该错误,一般来说,我在 google 上并没有看到很多点击,就好像错误一样是为给我带来不便量身定做的。二进制文件应该不是问题,因为我已经尝试了 FMOD 网站上提供的多个版本,它们都抛出相同的错误,而且我没有看到其他人抱怨在 Linux 上链接期间二进制文件抛出错误。
Eclipse 可能参与了这个混乱,但我使用的是 GNU 工具链,即使我将 Eclipse 设置为“在第一次构建错误时停止”,它仍然可以成功编译这些错误,就好像它们是幻像错误一样。
程序运行得很好,如果我足够懒惰,我什至可以忽略错误。大多数情况下,我正在寻找有关这些错误意味着什么的任何提示或线索,因为对我来说,C++ 编译和链接工具是幕后的人。
【问题讨论】:
标签: c++ linux linker eclipse-cdt fmod