ubuntu - 在 ubuntu 上为 gtkmm 和 gtk+ 配置 eclipse

标签 ubuntu eclipse-cdt gtk3 gtkmm eclipse-oxygen

我正在尝试为 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 中到处都有错误。 :

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

希望你能得到它的工作!

关于ubuntu - 在 ubuntu 上为 gtkmm 和 gtk+ 配置 eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58910311/

相关文章:

css - GTK+ 设置字体大小

linux - 易诺德 | ubuntu | sudo apt-get 更新 |镜像404错误

eclipse-cdt - 如何禁用搜索二进制文件

ubuntu - 加载共享库时出错 : libX11. so.6

eclipse - 在 docker 中构建 Eclipse CDT 项目

c++ - Eclipse/MinGW/CDT/GDB 和调试问题

C GTK3 - 如何在销毁主窗口之前等待/ sleep

c - 如何修复传递给 pango_layout_set_text() 的无效 UTF-8 字符串

ubuntu - Docker 守护程序不工作

postgresql - 使用 Supervisord 运行 PostgreSQL