我正在使用 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。
//丹尼尔
最佳答案
从菜单中选择项目 -> 属性打开属性窗口。然后在左侧的选择器中,转到 C/C++ general -> Paths and symbols。您将看到包含目录的列表。查看 pkg-config --cflags gtkmm-3.0
的输出并确保其中提到的所有目录也在该列表中。
请注意,这些是 Eclipse 的语法检查器查找包含文件的路径。您的代码可以正常编译,因为编译器正在按应有的方式查找这些文件。
关于Eclipse CDT & gtkmm : "... could not be resolved.", 但编译并运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204245/