我使用gtkmm在C ++中用Eclipse CDT编写代码。我已经成功设置了Eclipse,因此它通过向编译器选项添加pkg-config gtkmm-3.0 --cflags --libs
来正确编译代码。所以它运行,并且有效。但是在编辑器中,所有与gtk相关的下划线都带有红色,当我将鼠标悬停在这些部分上时,它会显示如下内容:Type 'Gtk::Main' could not be resolved
。所以我可以像这样编码,但是自动完成功能无法正常工作并且整个屏幕上出现红线真的很痛苦。我该如何解决这个问题?
我的代码看起来像这样:
#include <gtkmm-3.0/gtkmm.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
Gtk::Main kit(true);
Gtk::Box* box = new Gtk::Box();
...
但是,我不认为这与代码有关。因为它在Code :: Blocks中工作正常,代码完成和所有。但我更喜欢Eclipse而不是C :: B.
// Daniel
答案 0 :(得分:4)
选择项目 - &gt;从菜单中选择属性以打开属性窗口。然后在左侧的选择器中,转到 C / C ++ general - &gt; 路径和符号。您将看到包含目录的列表。查看pkg-config --cflags gtkmm-3.0
的输出,并确保其中提到的所有目录也在此列表中。
请注意,这些是Eclipse的语法检查程序查找包含文件的路径。你的代码编译得很好,因为编译器正在以它应该的方式找到这些文件。
答案 1 :(得分:2)
正如ptomato所说,必须配置路径。一种非常简单的方法是使用pkg-conf插件。 安装完成后,只需在configuration中选择gtkmm-3.0即可。 其余的将由插件完成。 希望这张照片有所帮助 请注意:屏幕截图显示了conf。对于GTK-2.0。你需要GTKMM-3.0。