GTK学习手记

写出自己的第一个windows上的GTK程序,真的不容易啊。我费了整整一天才弄出一个hello world。为了不让自己忘记,以及给他人留一块指示牌。

1、 安装cygwin,这没有什么好说的,把开发要用到的工具统统给选上。Gcc gdb make ldd 等

2、 下载一个windows上可以运行的GTK环境程序。gtk-2.10.11-win32-1.exe

下载开发包:atk-dev-1.20.0.zip, cairo-dev-1.4.14.zip,glib-dev-2.14.6-2.zip,gtk+-dev-2.12.8.zip,pango-dev-1.18.4.zip

解压缩到同一个目录里。安装gtk-2.10.11-win32-1.exe



3、设置环境变量PKG_CONFIG_PATH,如果不设置该变量`pkg-config --cflags --libs gtk+-2.0`就没有办法搞,`pkg-config --cflags --libs gtk+-2.0`是获取到GTK编译时的依赖项。

PKG_CONFIG_PATH里设什么值呢?

前面不是解压缩了好几个文件夹吗,把包含pkgconfig文件夹的路径拷贝出来。在windows上用逗号分割。

首先要设置这个环境变量,`pkg-config --cflags --libs gtk+-2.0`才起作用

set PKG_CONFIG_PATH=F:\tangnf\project\gtk_study\study\atk-dev-1.10.3\lib\pkgconfig;F:\tangnf\project\gtk_study\study\cairo-dev-1.4.0-win32-only\lib\pkgconfig;F:\tangnf\project\gtk_study\study\glib-dev-2.8.6\lib\pkgconfig;F:\tangnf\project\gtk_study\study\gtk+-dev-2.8.20\lib\pkgconfig;F:\tangnf\project\gtk_study\study\pango-dev-1.10.3\lib\pkgconfig;



4、 `pkg-config --cflags --libs gtk+-2.0`很不幸在cygwin上好像用不了``这种quote。

我们只有在cmd命令行下,运行pkg-config --cflags --libs gtk+-2.0,得出一个串,把这个串拷贝下来,待会我们gcc编译的时候要用。

我得到了这样一个编译选项串

-mms-bitfields -IF:/tangnf/project/gtk_study/study/atk-dev-1.10.3/include/atk-1.0 -IF:/tangnf/project/gtk_study/study/cairo-dev-1.4.0-win32-only/include/cairo -IF:/tangnf/project/gtk_study/study/glib-dev-2.8.6/include/glib-2.0 -IF:/tangnf/project/gtk_study/study/glib-dev-2.8.6/lib/glib-2.0/include -IF:/tangnf/project/gtk_study/study/gtk+-dev-2.8.20/include/gtk-2.0 -IF:/tangnf/project/gtk_study/study/gtk+-dev-2.8.20/lib/gtk-2.0/include -IF:/tangnf/project/gtk_study/study/pango-dev-1.10.3/include/pango-1.0 -Ic:/devel/dist/cairo-1.0.2/include/cairo -LF:/tangnf/project/gtk_study/study/atk-dev-1.10.3/lib -LF:/tangnf/project/gtk_study/study/cairo-dev-1.4.0-win32-only/lib -LF:/tangnf/project/gtk_study/study/glib-dev-2.8.6/lib -LF:/tangnf/project/gtk_study/study/gtk+-dev-2.8.20/lib -LF:/tangnf/project/gtk_study/study/pango-dev-1.10.3/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv

5、编译我的helleworld

gcc -g -o colorsel.exe colorsel.c -mms-bitfields -IF:/tangnf/project/gtk_study/study/atk-dev-1.10.3/inc

lude/atk-1.0 -IF:/tangnf/project/gtk_study/study/cairo-dev-1.4.0-win32-only/include/cairo -IF:/tangnf/project/gtk_study/study/glib-dev-2.8.6/include/glib-2.0 -IF:/tangnf/project/gtk_study/study/glib-dev-2.8.6/lib/glib-2.0/include -IF:/tangnf/project/gtk_study/study/gtk+-dev-2.8.20/include/gtk-2.0 -IF:/tangnf/project/gtk_study/study/gtk+-dev-2.8.20/lib/gtk-2.0/include -IF:/tangnf/project/gtk_study/study/pango-dev-1.10.3/include/pango-1.0 -Ic:/devel/dist/cairo-1.0.2/include/cairo -LF:/tangnf/project/gtk_study/study/atk-dev-1.10.3/lib -LF:/tangnf/project/gtk_study/study/cairo-dev-1.4.0-win32-only/lib -LF:/tangnf/project/gtk_study/study/glib-dev-2.8.6/lib -LF:/tangnf/project/gtk_study/study/gtk+-dev-2.8.20/lib -LF:/tangnf/project/gtk_study/study/pango-dev-1.10.3/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv

6、结果出来了都正确了哦


本文来自CSDN博客,转载请标明出处:https://www.360docs.net/doc/9218898748.html,/tangnf/archive/2008/03/17/2193126.aspx

相关文档
最新文档