如何让 C++ 库在 Eclipse 中工作?
How do you get C++ libraries to work in Eclipse?
我不会浪费太多时间来抱怨它来自 Java 有多难,这是一种语言,您只需单击一个按钮,然后 select 一个文件即可将外部库添加到一个项目,到 C++,如果没有 owl 的耐心似乎是不可能完成的。我不认为我需要 post 像这样的问题,因为它看起来很初级,但至少已经尝试了 3 周并失败了。我还阅读了 eclipse 网站提供的模糊文档,它根本没有涵盖任何内容。
例如,假设 gtkmm-3.0。我已经在我的 linux 机器上安装了它,一切正常。为什么不能只做:
#include <gtkmm-3.0/gtkmm.h>
因为在 Eclipse 中确实提出了建议。在这个阶段,我已经不知所措了,因为我认为一个好的 IDE 不应该为实际上不可用的东西提供建议,如果可以,它至少应该自动包含它们或其他东西。
我也曾多次尝试使用其他库,但均以失败告终,并向我认识的全职 C++ 开发人员寻求帮助,但他也无法解决该错误。
tl;dr - 从互联网上下载 lib,打开 eclipse,做什么?
抱歉,如果这个问题看起来很愚蠢。当 'working' 使用 C++ 时,抑郁症真的很糟糕。
我发现包含和链接适当库的最佳方法是为所有配置创建构建变量。这样我就可以在一个地方根据需要 add/remove 库和标志。
- 创建构建变量
- 右键单击您的项目和 select 属性,然后 C/C++ Build -> Build Varialbes
- 确保配置设置为
[All Configurations]
- Select 添加并给它起一个像
GTK_CFLAGS
这样的名字,对于值,它是一个类型为`pkg-config gtkmm-3.0 --cflags`的字符串(那些是反引号)
- 现在做另一个变量,但将其命名为
GTK_LIBS
并使用标志 --libs
而不是 --cflags
。
- Select申请
- 现在转到设置(也应该在 C/C++ 构建下)
- 确保配置适用于所有配置,而不仅仅是发布或调试
- Select
GCC C++ Compiler
(或您使用的任何编译器)
- 在命令行模式中(应该看起来像
${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} -std=c++11
)在命令宏 之后添加 ${GTK_CFLAGS}
(或任何你叫它的东西)
- select申请
- 现在 Select
GCC C++ Linker
并在 ${INPUTS}
之后的命令行模式中放置 ${GTK_LIBS}
和 select 应用
这应该可以让您使用 GTKmm 进行编译,索引器和自动完成可能仍然存在问题。如果你想包含特定的头文件,以便你的索引器和自动完成可以看到它们。您可以在 C/C++ General-> Paths and Symbols
中执行此操作并添加包含目录,然后 select 应用并重建您的索引。
我不会浪费太多时间来抱怨它来自 Java 有多难,这是一种语言,您只需单击一个按钮,然后 select 一个文件即可将外部库添加到一个项目,到 C++,如果没有 owl 的耐心似乎是不可能完成的。我不认为我需要 post 像这样的问题,因为它看起来很初级,但至少已经尝试了 3 周并失败了。我还阅读了 eclipse 网站提供的模糊文档,它根本没有涵盖任何内容。
例如,假设 gtkmm-3.0。我已经在我的 linux 机器上安装了它,一切正常。为什么不能只做:
#include <gtkmm-3.0/gtkmm.h>
因为在 Eclipse 中确实提出了建议。在这个阶段,我已经不知所措了,因为我认为一个好的 IDE 不应该为实际上不可用的东西提供建议,如果可以,它至少应该自动包含它们或其他东西。
我也曾多次尝试使用其他库,但均以失败告终,并向我认识的全职 C++ 开发人员寻求帮助,但他也无法解决该错误。
tl;dr - 从互联网上下载 lib,打开 eclipse,做什么?
抱歉,如果这个问题看起来很愚蠢。当 'working' 使用 C++ 时,抑郁症真的很糟糕。
我发现包含和链接适当库的最佳方法是为所有配置创建构建变量。这样我就可以在一个地方根据需要 add/remove 库和标志。
- 创建构建变量
- 右键单击您的项目和 select 属性,然后 C/C++ Build -> Build Varialbes
- 确保配置设置为
[All Configurations]
- Select 添加并给它起一个像
GTK_CFLAGS
这样的名字,对于值,它是一个类型为`pkg-config gtkmm-3.0 --cflags`的字符串(那些是反引号) - 现在做另一个变量,但将其命名为
GTK_LIBS
并使用标志--libs
而不是--cflags
。 - Select申请
- 现在转到设置(也应该在 C/C++ 构建下)
- 确保配置适用于所有配置,而不仅仅是发布或调试
- Select
GCC C++ Compiler
(或您使用的任何编译器) - 在命令行模式中(应该看起来像
${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} -std=c++11
)在命令宏 之后添加 - select申请
- 现在 Select
GCC C++ Linker
并在${INPUTS}
之后的命令行模式中放置${GTK_LIBS}
和 select 应用
${GTK_CFLAGS}
(或任何你叫它的东西)
这应该可以让您使用 GTKmm 进行编译,索引器和自动完成可能仍然存在问题。如果你想包含特定的头文件,以便你的索引器和自动完成可以看到它们。您可以在 C/C++ General-> Paths and Symbols
中执行此操作并添加包含目录,然后 select 应用并重建您的索引。