C++ 尝试构建非常简单的gtkmm应用程序时出现编译器错误:

C++ 尝试构建非常简单的gtkmm应用程序时出现编译器错误:,c++,include,gtk,gtkmm,codelite,C++,Include,Gtk,Gtkmm,Codelite,我在Ubuntu13.04上使用aptitude安装了gtkmm 3,我喜欢aptitude,因为它能记住当你想删除它时安装了什么: sudo aptitude install libgtkmm-3.0-dev --with-recommends 使用codelite 5.1.2和默认gtk++工具链,在我的编译器中包括我添加的路径: /usr/include/gtkmm-3.0-gtkmm.h的路径 我尝试在GTKMM编程中构建第一个示例应用程序: 所有的地狱都从油嘴滑舌中挣脱出来了。h:

我在Ubuntu13.04上使用aptitude安装了gtkmm 3,我喜欢aptitude,因为它能记住当你想删除它时安装了什么:

sudo aptitude install libgtkmm-3.0-dev --with-recommends
使用codelite 5.1.2和默认gtk++工具链,在我的编译器中包括我添加的路径:

/usr/include/gtkmm-3.0-gtkmm.h的路径

我尝试在GTKMM编程中构建第一个示例应用程序:

所有的地狱都从油嘴滑舌中挣脱出来了。h:

我在尝试使用gtkmm 2.4时也遇到了同样的问题


很明显,我在这里遗漏了一些东西。我做错了什么?构建gtkmm项目还需要做些什么?

不要摆弄include,而是使用pkg config:


顺便说一句,您的示例编译和运行都很好。

不要摆弄include,而是使用pkg config:


顺便说一句,您的示例编译并运行得很好。

使用gtkmm时,建议使用pkg config工具。 您也可以从codelite执行此操作:

右键单击项目:设置->公共设置>编译器-> C++编译器选项: 并加上:

如果有其他选项,则它们应以分号分隔

接下来,将以下内容添加到链接器选项: 右键单击项目:设置->常用设置->链接器->选项:

$(shell pkg-config gtkmm-3.0 --libs)
同样,如果您有其他选项,它们应该用分号分隔

删除您添加的所有硬编码include路径以上2条就足够了

注:

codelite论坛上也回答了这个问题:


Eran

使用gtkmm时,建议使用pkg配置工具。 您也可以从codelite执行此操作:

右键单击项目:设置->公共设置>编译器-> C++编译器选项: 并加上:

如果有其他选项,则它们应以分号分隔

接下来,将以下内容添加到链接器选项: 右键单击项目:设置->常用设置->链接器->选项:

$(shell pkg-config gtkmm-3.0 --libs)
同样,如果您有其他选项,它们应该用分号分隔

删除您添加的所有硬编码include路径以上2条就足够了

注:

codelite论坛上也回答了这个问题:


Eran

这个错误消息对我来说似乎很清楚:error GLIB_VERSION_MIN_REQUIRED必须>=GLIB_VERSION_2_26,而且您似乎只安装了GLIB的2.0版本。您似乎是对的-但是我根据GTKMM网站上的说明安装了3.0,而且唯一的GLIB.h版本似乎就是我已经安装的版本。GTKMM文档确实说,安装的版本并不总是与他们发布的实际代码库同步。@JoachimPileborg-似乎我并不孤单。在SE/AskUbuntu上有很多类似的问题。他们说Unity似乎和gtkmm相处得不太好。。。。顺便说一句,感谢您的编辑。这个错误消息对我来说似乎很清楚:error GLIB_VERSION_MIN_REQUIRED必须>=GLIB_VERSION_2_26,而且您似乎只安装了GLIB的2.0版本。您似乎是对的-但是我根据GTKMM网站上的说明安装了3.0,而且GLIB.h的唯一版本似乎就是我已经安装的版本。GTKMM文档确实说,安装的版本并不总是与他们发布的实际代码库同步。@JoachimPileborg-似乎我并不孤单。在SE/AskUbuntu上有很多类似的问题。他们说Unity似乎和gtkmm相处得不太好。。。。顺便说一句,感谢您的编辑。我看到codelite中的“创建新项目”对话框提供了一个选项来创建gtkmm项目并自动添加这些标志。我看到codelite中的“创建新项目”对话框提供了一个选项来创建gtkmm项目并自动添加这些标志。 /bin/sh -c 'make -j 4 -e -f "Calendars_wsp.mk"' ----------Building project:[ CalendarsGUI - Debug ]---------- ........ /gtkmm-3.0 -I/usr/include/glibmm-2.4 -I/usr/lib/i386-linux-gnu/glibmm-2.4/include -I//usr/include/glib-2.0 In file included from //usr/include/glib-2.0/glib/gtypes.h:36:0, from //usr/include/glib-2.0/glib/galloca.h:34, from //usr/include/glib-2.0/glib.h:32, from /usr/include/glibmm-2.4/glibmm/thread.h:46, from /usr/include/glibmm-2.4/glibmm.h:87, from /usr/include/gtkmm-3.0/gtkmm.h:87, from main.cpp:16: ***//usr/include/glib-2.0/glib/gversionmacros.h:179:2: error: #error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26"*** In file included from //usr/include/glib-2.0/glib/galloca.h:34:0, from //usr/include/glib-2.0/glib.h:32, from /usr/include/glibmm-2.4/glibmm/thread.h:46, from /usr/include/glibmm-2.4/glibmm.h:87, from /usr/include/gtkmm-3.0/gtkmm.h:87, from main.cpp:16: ***//usr/include/glib-2.0/glib/gtypes.h:448:2: error: #error unknown ENDIAN type ....... make: *** [All] Error 2 2 errors, 2 warnings***
g++ foo.cc -o foo `pkg-config gtkmm-3.0 --cflags --libs`
$(shell pkg-config gtkmm-3.0 --cflags)
$(shell pkg-config gtkmm-3.0 --libs)