初始安装
1.到官网下载最新的 all-in-one bundle,解压到任意位置,比如我的位置为:L:\Develop\gtk (我下载的版本为3.6.4)
2.将其下的bin目录添加到环境变量path:
3.(此步不是必需)打开命令行输入一下命令:
- pango-querymodules > L:\Develop\gtk\etc\pango\pango.modules
- gdk-pixbuf-query-loaders > L:\Develop\gtk\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache
- gtk-query-immodules-3.0 > L:\Develop\gtk\lib\gtk-3.0\3.0.0\immodules.cache
使用GTK+3进行开发
1.打开命令行.运行以下命令,得到的信息就是编译时候的附加信息(包括头文件、库等)
pkg-config
--cflags gtk+-3.0
其中-I(大写的i)参数指定了头文件目录,-L(大写的l字母)参数后面跟着的路径是库目录,-l(小写的l字母)参数跟着的路径是动态链接库文件名。
把所有-I(大写的i)后面的路径加入头文件目录,所有-l(小写的l字母)后面的路径加入库文件目录即可。
为了方便加入到vs的配置中来,我们可以将上局命令的输出存到文件中:
pkg-config --cflags gtk+-3.0 > D:\info.txt
下面是我整理好的头文件目录,将下面加入项目属性配置里面"VC++ Derectories"选项卡的“Include Directories”处:
L:/Develop/gtk/include/gtk-3.0;L:/Develop/gtk/include/cairo;L:/Develop/gtk/include/pango-1.0;L:/Develop/gtk/include/atk-1.0;L:/Develop/gtk/include/cairo;L:/Develop/gtk/include/pixman-1;L:/Develop/gtk/include;L:/Develop/gtk/include/freetype2;L:/Develop/gtk/include;L:/Develop/gtk/include/libpng15;L:/Develop/gtk/include/gdk-pixbuf-2.0;L:/Develop/gtk/include/libpng15;L:/Develop/gtk/include/glib-2.0;L:/Develop/gtk/lib/glib-2.0/include;L:/Develop/gtk/lib;
下面是库文件目录,将其加入"VC++ Derectories"选项卡的“Library Directories”处:
L:/Develop/gtk/lib
下面是要添加的动态链接库文件:
atk-1.0.lib
cairo.lib
fontconfig.lib
gailutil.lib
gdk-win32-3.0.lib
gdk_pixbuf-2.0.lib
gio-2.0.lib
glib-2.0.lib
gmodule-2.0.lib
gobject-2.0.lib
gthread-2.0.lib
gtk-win32-3.0.lib
pango-1.0.lib
pangocairo-1.0.lib
pangoft2-1.0.lib
pangowin32-1.0.lib
实话说,头文件目录和库文件目录还好搞,由于本人对编译参数的了解不是很深入,所以在链接库那里折腾了好久,最后索性用了暴力的方法,将lib目录下的所有lib文件都添加进去了。
(P.S. 大家看到要输入这么多的路径是不是很麻烦心怕呢?介绍大家一款神奇Sublime-Text,多光标模式加上替换等基本功能,会让你快速整理出可以复制进vs配置输入框中的格式。至于库文件名,你可以在命令行下进入其目录输入命令:
dir *.lib > D:\lib-names.txt
然后用上Sublime-Text神器,很快就可以得到如上的简洁格式,立即复制到vs的配置输入框中。)
跑程序
#include <gtk-3.0\gtk\gtk.h> int main(int argc, char* argv[]) { gtk_init(&argc, &argv); GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request(window, 300, 200); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010"); gtk_widget_show(window); gtk_main(); return 0; }
运行结果如下:
大功告成!
参考:
Installation and usage tutorial for Windows