首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gtkmm编译错误

Gtkmm编译错误
EN

Stack Overflow用户
提问于 2011-07-16 07:51:57
回答 3查看 1.5K关注 0票数 3

操作系统: Windows 7

编译器: MinGW

IDE:代码::块

我刚刚在我的计算机上的文件夹C:/ Gtkmm /中安装了gtkmm,并设置了一个示例程序。当我编译它的时候,它给出了错误"gtkmm.h:没有这样的文件或目录“

我尝试将PATH变量设置为C:/gtkmm/include和C:/gtkmm/gtkmm-2.4,但都不起作用。然后我尝试使用#include "C:/gtkmm/include/gtkmm-2.4/gtkmm.h“,结果给出了一大堆错误,说它不知道几十个文件在哪里。

我还听说需要将pkg-config gtkmm-2.4 --cflags --libs放在编译器选项中,但这也不起作用。

我做错了什么?我该如何改正?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-17 04:50:59

pkg-config是一个帮助器函数,用于将cflag和lib路径添加到编译器行。

您需要做的就是将库和cflag路径添加到编译器行中。不过,我不能100%确定如何在code::block中做到这一点

在ubuntu 11.04中,你甚至需要所有这些来编译一个简单的gtkmm程序:

Libs (pkg-config --libs gtkmm-2.4:

-pthread -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0

cflags路径(pkg-config --clfags gtkmm-2.4):

-I/usr/include/atk-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gio-unix-2.0/ -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/gtk-2.0 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/lib/gtk-2.0/include -I/usr/include/gdk-pixbuf-2.0

基本上,您必须将/usr/include//usr/lib/的每个实例更改为c:\path-to-library\

我不确定在MinGW上你需要多少以上的东西,但是在Linux上的GCC,删除任何一个都会导致gtkmm程序无法编译。希望这至少能让你走上正确的道路。

票数 1
EN

Stack Overflow用户

发布于 2011-07-16 14:24:17

PATH变量是什么意思?可执行文件的全局窗口搜索路径?那将是错误的。

您需要在您的集成开发环境中查找Include search pathheader search path或类似的东西。

当您在命令行中执行pkg-config命令时,该命令对您有效吗?当在unix系统上使用这样的pkg-config时,它会包含在反引号中,这会导致它被它的输出所取代。我不知道您的IDE是否可以做到这一点,但是如果它可以从命令行中运行,那么您至少有一个所需的所有包含项的列表。

票数 1
EN

Stack Overflow用户

发布于 2015-07-02 04:41:14

使用autotools C++项目。您只需要编辑两个文件configure.acMakefile.am。将此行添加到configure.ac

代码语言:javascript
复制
PKG_CHECK_MODULES([GTKMM], [gtkmm-3.0])

并将这些行发送到Makefile.am

代码语言:javascript
复制
program_CPPFLAGS = $(GTKMM_CFLAGS)

program_LDADD = $(GTKMM_LIBS)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6714307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档