操作系统:Windows 7
编译器:MinGW
IDE:代码::块
我刚把Gtkmm安装在我电脑的C:/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
,但这也不起作用。
我做错了什么?我该如何改正?
3条答案
按热度按时间af7jpaap1#
pkg-config是一个辅助函数,用于向编译器行添加cflags和lib路径。
你需要做的是把库和cflags路径添加到编译器行中,不过我不是100%确定如何在code::blocks.中做到这一点
在ubuntu11.04中,即使是编译一个简单的gtkmm程序也需要所有这些:
库(软件包配置--库〉kmm-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路径(包配置--cflags 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程序无法编译。希望这至少能让你走上正确的道路。
klh5stk12#
你说的PATH变量是什么意思?全局窗口搜索PATH来查找可执行文件?那是错误的。
您需要在IDE中查找
Include search path
或header search path
或类似的内容。当你在命令行上执行pkg-config命令时,它是否可以工作?这样的pkg-config在unix系统上使用时,会被反引号括起来,这会导致它被它的输出所替代。不知道你的IDE是否可以这样做,但如果它可以从命令行上工作,你至少有一个所需的所有包含的列表。
2vuwiymt3#
使用autotools C++项目,只需要编辑
configure.ac
和Makefile.am
两个文件,将此行添加到configure.ac
这些线对应于
Makefile.am
程序加载添加= $(GTKMM库)