我使用 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。
希望你能得到它的工作!