在 Eclipse IDE 的 Boost 标头中出现“Undefined reference to boost libraries”错误

Getting "Undefined reference to boost libraries" errors in Boost headers in Eclipse IDE

提问人:Hari Kishan 提问时间:6/3/2023 最后编辑:Hari Kishan 更新时间:6/3/2023 访问量:32

问:

Eclipse IDE 中的 Boost 标头 - “Undefined reference to” 错误。

大家好,我在安装和配置了 CDT 插件的 Eclipse IDE 中遇到了这个“未定义对提升库的引用”错误。其他程序,包括pthread库和其他C / C++程序工作正常。他们构建和运行良好。 我检查了所有具有相似标题的链接并尝试了它们,但没有一个对我有用。

我的Eclipse IDE版本(带有CDT插件):

面向 Java 开发人员的 Eclipse IDE(包括孵化组件)

版本: 2022-12 (4.26.0)

内部版本 ID:20221201-1913

操作系统: Linux, v.5.19.0-43-generic, x86_64 / gtk 3.24.33

Java 供应商:Eclipse Adoptium

Java 运行时版本:17.0.5+8

Java版本:17.0.5

操作系统版本:Ubuntu 22.04 LTS 内核版本:

$ uname -r
5.19.0-43-generic

Boost 安装位置:

$ whereis boost
boost: /usr/include/boost

这是我尝试运行的简单程序。这个完全相同的程序运行良好,就像在 code::blocks IDE 和命令提示符下使用 g++ 命令一样。Simple c++ program with boost libraries & the error Eclipse shows after building it (on the last lines of this screenshot)

我在这里寻找并搜索了类似的问题,但没有一个尝试过我的问题。以下是类似的问题线程和他们建议的修复/解决方案,我试图让它工作,但它对我不起作用,因此在这里问这个问题。

尝试01:包括boost库的外部路径不起作用项目 ->属性 -> C/C++ 包含路径 -> 添加外部包含路径 -> 添加的提升库路径(在我的情况下是/usr/include/boost) ->确定 ->应用并关闭 ->清理的项目 ->全部构建Try 01 - including external path of boost libraries did not work

尝试 02:在索引器中启用特定于项目的设置:项目 ->属性 -> C/C++ 常规 ->索引器 -> 启用项目特定设置 ->选中在编辑器中打开的索引源文件和头文件 ->应用 ->应用并关闭 ->清理 -> 全部构建

Try 02: Enable project specific settings in Indexer - did not work again

在尝试了上述两次尝试之后,我没有任何想法可以进一步尝试。请提前提供任何帮助。

最后,这些是 Project -> Properties 中唯一的选项。我什至没有看到任何添加任何编译器特定选项的选项。No any compiler specific options to add我认为我不需要添加任何库路径,因为执行提升相关.cpp文件的命令行不需要任何“-l”选项来链接提升库。g++ -o s main.cpp

这些是我的eclipse ide用来编译和执行的命令:

g++ -c -O2   -o cppTestProj.o /home/hk/eclipse-workspace/cppTestProj/cppTestProj.cpp

g++  -o cppTestProj cppTestProj.o

我什至尝试了手动添加链接器选项“-lboost_system”的这些命令,但它仍然不起作用。

等待其他人如何解决此类问题的修复。提前感谢您的时间和帮助。

eclipse ubuntu boost build linker-errors

评论

0赞 G.M. 6/3/2023
看起来您需要与 链接: 即 .libboost_chrono.so-lboost_chrono
0赞 Hari Kishan 6/3/2023
我在Eclipse IDE中没有看到任何使用此链接器选项“-lboost_chrono”的选项。我在 Project -> Properties 中没有看到这样的链接器选项。你能告诉我在哪里添加这个吗?
0赞 user7860670 6/4/2023
在项目根目录下有一个可见的 makefile,所以我假设您的项目正在使用此 makefile 而不是 eclipse 构建系统,因此链接器参数应该进入此 makefile 而不是属性页(Eclipse C++ 项目设置实际上完全丢失)。也是 Ubuntu 上股票编译器的内置路径,因此您不应将其添加到任何地方。/usr/include

答: 暂无答案