Eclipse 生成文件项目中的 Gtkmm:"could not be resolved"

Gtkmm in Eclipse makefile project: "could not be resolved"

我正在尝试将使用 Gtkmm3.0 的自定义 C++ 项目迁移到 Ubuntu 16.04 上的 Eclipse (Oxygen)。该项目有自己的 Makefile,可以从 Eclipse 中的终端正常构建。到目前为止我没能做的是告诉索引器关于 Gtkmm,我得到了很多这些(这很烦人):

当我将鼠标悬停在小红虫上时,它显示:

Type 'Cairo::RefPtr<Cairo::Context>' could not be resolved.

我对此进行了大量谷歌搜索,但到目前为止一无所获,因为所有答案似乎都假定项目的构建工具由 Eclipse 管理(例如,参见 this or this)。就我而言,我有一个 makefile 项目 而不是 可执行项目 ,因此我无法使用某些选项。例如,第一个链接谈到配置构建器:

We have to add all this directories. On Eclipse select the Project->Properties menu option. Select C/C++ Build->Settings property page and GNU C++ Compiler->Directories from the Tool Settings tab. Now we have to add all directories. In my case (Makefile project) only two tabs are available there: Binary Parsers and Error Parsers.

如何告诉 Eclipse 索引器我正在使用 Gtkmm3.0?

找到适合我的解决方案:

  1. 打开终端并输入:

    pkg-config --cflags gtkmm-3.0

您将看到包含目录的列表(从 -I 开始)。这些是您要在 Eclipse 中添加的目录,以便它可以在编辑器中找到 Gtkmm 符号。

  1. 在 Eclipse 中,转到:

    Project -> Properties -> C++ General -> Paths and Symbols

Includes 选项卡中,select GNU C++。您需要在此处添加在步骤 1 中找到的包含目录。没有自动执行此操作的方法,您必须一一输入。

一个可以节省时间的技巧是手动编辑 Eclipse 项目设置 XML 文件,并直接在 XML 文件中添加包含目录。到最后,您应该得到如下所示的内容:

这对我有用,希望对您有所帮助!