我正在尝试为 C++ (Oxygen) 配置最新的 Eclipse 以使用 gtkmm。如何从 Eclipse 中删除错误,例如未解析的符号和 gtkmm 头文件。
我可以使用 g++ 和 pkg-config 标志从命令行编译。如何从 Eclipse IDE 做同样的事情?
我正在使用最新的 IDE 2019 版本。
最佳答案
我已经使用 gtkmm 和 Eclipse 有一段时间了。这是我如何设置它以使两者正常工作。为了说明这一点,我将以 Gtkmm manual 中的基本示例为例。 .在此示例中,您有一个包含两个文件的项目:simple.cc
: 这是一个简单的源代码文件。
#include <gtkmm.h>
int main(int argc, char *argv[])
{
auto app =
Gtk::Application::create(argc, argv,
"org.gtkmm.examples.base");
Gtk::Window window;
window.set_default_size(200, 200);
return app->run(window);
}
Makefile
:这可以帮助您构建项目。注意 g++
之前的间距是制表符,而不是空格。all:
g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`
这两个文件位于同一目录下。据我了解,您可以从命令行构建。所以运行
make
像这样:make
应该可以很好地构建项目。现在,要从 Eclipse 处理这个项目,我们将首先创建一个 Makefile 项目:
File -> New -> Makefile Project from Existing Code
.填写信息(一定要选择上述文件所在的目录)。此时,您应该有一个包含您的两个文件的 Eclipse 项目,但在 simple.cc
中到处都有错误。 :问题是 Eclipse 不知道 gtkmm 及其包含。我们必须为他找到它们。为此,请打开一个终端并输入以下内容:
echo `pkg-config gtkmm-3.0 --cflags --libs`
输出将如下所示:
-pthread -I/usr/include/gtkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include ...
在这个困惑中,您有许多看起来像
-I/some/path
的子字符串。 ,如 -I/usr/include/gtkmm-3.0
或 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include
.这些是包含文件的位置。这就是 Eclipse 需要的!我们需要做的是获取所有这些位置并将它们提供给 Eclipse。为此,请转至 Project -> Properties -> C/C++ General -> Paths and Symbols
.在语言列表中,选择 GNU C++
.在 Include directories
部分,添加所有这些路径(是的,这很痛苦。您可以从 cproject 文件中手动添加它们,这可以节省一些时间,但我在这里不这样做,因为它更容易出错)。你应该得到类似的东西:完成后点击
Apply and Close
.错误可能不会消失,您可能需要重新索引项目。为此,请右键单击它,转到 Index -> Rebuild
.然后错误应该消失(可能需要一些时间)。此时,您的编辑器中不再有错误,您可以在 Eclipse 中构建:
Project -> Build Project
.希望你能得到它的工作!
关于ubuntu - 在 ubuntu 上为 gtkmm 和 gtk+ 配置 eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58910311/