Ubuntu上为gtkmm和gtk +配置的日食

问题描述 投票:0回答:1

我正在尝试将最新的Eclipse for C ++(Oxygen)配置为可与gtkmm一起使用。如何从Eclipse中删除错误,例如未解决的符号和gtkmm头文件。

我能够使用g ++和pkg-config标志从命令行进行编译。如何从Eclipse IDE中执行相同的操作?

我正在使用最新的IDE 2019版本。

ubuntu eclipse-cdt gtk3 gtkmm eclipse-oxygen
1个回答
0
投票

我已经使用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中到处都有错误:

enter image description here

问题是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文件中手动添加它们,这可以节省一些时间,但是我不这样做,因为它更容易出错)。您应该得到类似的内容:

enter image description here

完成后,单击Apply and Close。错误可能不会消失,您可能必须重新索引项目。为此,右键单击它,转到Index -> Rebuild。错误应消失(可能需要一些时间)。

enter image description here

目前,您的编辑器中没有更多错误,可以在Eclipse中构建:Project -> Build Project

enter image description here

希望您可以使它正常工作!

© www.soinside.com 2019 - 2024. All rights reserved.