【问题标题】:Unknown GCC Linker error, but builds sucessfully未知的 GCC 链接器错误,但构建成功
【发布时间】: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


    【解决方案1】:

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

    看起来 FMOD 有一个无效的符号表,但阅读该错误报告似乎没有任何害处,只是有点神秘的警告(不包含关键字“警告”)。

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

    【讨论】:

    • 我希望有一种方法可以隐藏它,它不会影响编译,但它会在 Eclipse 的“问题”选项卡中显示为错误,这会困扰我的自我诊断强迫症,这可能不会不存在。困扰我的是,如果这确实是 FMOD 的问题,那为什么还没有人提出来呢
    • 好的,我根据您链接的帖子在链接器命令中添加了“-fuse-ld=gold”,尽管我不知道它是做什么的,但它消除了警告。如果您将其添加为后代的注释,我将接受此答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2011-12-13
    • 2016-01-20
    相关资源
    最近更新 更多