【问题标题】:Eclipse CDT & gtkmm: "... could not be resolved.", but compiles and runsEclipse CDT & gtkmm:“...无法解析。”,但编译并运行
【发布时间】:2012-01-02 12:07:37
【问题描述】:

我正在使用 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。

//丹尼尔

【问题讨论】:

  • 我为这个here做了完整的程序。

标签: eclipse autocomplete gtk eclipse-cdt gtkmm


【解决方案1】:

从菜单中选择Project -> Properties 以打开属性窗口。然后在左侧的选择器中,转到 C/C++ 常规 -> 路径和符号。您将看到包含目录的列表。查看pkg-config --cflags gtkmm-3.0 的输出并确保其中提到的所有目录也在此列表中。

请注意,这些是 Eclipse 的语法检查器查找包含文件的路径。您的代码编译得很好,因为编译器正在以应有的方式查找这些文件。

【讨论】:

  • 非常感谢!它似乎工作得很好。但是,有没有一种简单快捷的方法来添加它们?我是否必须对所有 gtkmm 项目重复此操作?
  • 抱歉,我还没有找到更好的自动或轻松完成的方法。
  • 您可以像答案中建议的那样展开pkg-config --cflags gtkmm-3.0,并在eclipse的XML项目文件中手动添加输出。使用矩形选择(Shift + Alt + A 启用),可以很快完成。
【解决方案2】:

正如 ptomato 所说,必须配置路径。一个非常简单的方法是使用pkg-conf 插件。 安装后你只需要在configuration中选择gtkmm-3.0即可。 其余的将由插件完成。 希望这张图片有帮助。 请注意:屏幕截图显示了 conf。适用于 GTK-2.0。您需要 GTKMM-3.0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 2013-09-19
    • 2015-11-07
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    相关资源
    最近更新 更多