【问题标题】:Configured eclipse for gtkmm and gtk+ on ubuntu在 ubuntu 上为 gtkmm 和 gtk+ 配置 eclipse
【发布时间】:2020-03-13 13:43:14
【问题描述】:

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

我可以使用 g++ 和 pkg-config 标志从命令行编译。如何在 Eclipse IDE 中做同样的事情?

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

【问题讨论】:

    标签: ubuntu eclipse-cdt gtk3 gtkmm eclipse-oxygen


    【解决方案1】:

    我使用 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 -&gt; New -&gt; 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 -&gt; Properties -&gt; C/C++ General -&gt; Paths and Symbols。在语言列表中,选择GNU C++。在Include directories 部分中,添加所有这些路径(是的,这很痛苦。您可以从 cproject 文件中手动添加它们,这可以节省一些时间,但我在这里不这样做,因为它更容易出错)。你应该得到类似的东西:

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

    此时,您的编辑器中没有更多错误,您可以在 Eclipse 中构建:Project -&gt; Build Project

    希望你能得到它的工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多