从这里可以下载到所有需要的gtk软件包
http://www.gimp.org/~tml/gimp/win32/downloads.html
需要下载:
glib gtk+ pango atk cairo gnulibiconv gettext libpng libjpeg libtiff zlib
既然需要开发,在下载这些软件包的时候当然还要记得下载dev包,源代码包是没有必要的。
将下载的软件包解压开,最好解压到同一个目录下
gtk环境就基本准备就绪了
接下来可以写一个测试程序,比如网上比较多的一段(附在最后)
用vc6打开编译得到工程文件
编译的过程中,一定会碰到很多问题,大都是因为include路径没有设置正确的缘故,将所有需要的include路径配置好还是比较容易的。
想必在配置include路径的过程中,大家会发现诸多函数库的include文件名都很规则,这样可以在部署环境的时候改变头文件的目录位置,这样会方便很多。
另外,编译过程会报错,glibconfig.h 和 gdkconfig.h 这两个文件找不到,其实他们分别在这里:
lib/glib*/include/ 和 lib/gtk*/include/
将这两个目录也设置为项目的include目录,或者将这两个文件拷贝到已经指定的目录中
重新编译,链接的时候设置好 lib 路径
运行时指定 bin 路径,或者将目标直接生成到 bin 路径下
你就可以看到一个在windows下运行的gtk程序了!
(以下是一段很简单的gtk代码)
#include <gtk/gtk.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
GtkWidget *win, *label;
gtk_set_locale();
gtk_init(&argc, &argv);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(GTK_WIDGET(win), 200, 100);
gtk_window_set_title(GTK_WINDOW(win), "Test");
gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(gtk_exit), NULL);
label=gtk_label_new("Hello, GTK+/n");
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(label));
gtk_widget_show_all(win);
gtk_main();
return 0;
}
http://www.gimp.org/~tml/gimp/win32/downloads.html
需要下载:
glib gtk+ pango atk cairo gnulibiconv gettext libpng libjpeg libtiff zlib
既然需要开发,在下载这些软件包的时候当然还要记得下载dev包,源代码包是没有必要的。
将下载的软件包解压开,最好解压到同一个目录下
gtk环境就基本准备就绪了
接下来可以写一个测试程序,比如网上比较多的一段(附在最后)
用vc6打开编译得到工程文件
编译的过程中,一定会碰到很多问题,大都是因为include路径没有设置正确的缘故,将所有需要的include路径配置好还是比较容易的。
想必在配置include路径的过程中,大家会发现诸多函数库的include文件名都很规则,这样可以在部署环境的时候改变头文件的目录位置,这样会方便很多。
另外,编译过程会报错,glibconfig.h 和 gdkconfig.h 这两个文件找不到,其实他们分别在这里:
lib/glib*/include/ 和 lib/gtk*/include/
将这两个目录也设置为项目的include目录,或者将这两个文件拷贝到已经指定的目录中
重新编译,链接的时候设置好 lib 路径
运行时指定 bin 路径,或者将目标直接生成到 bin 路径下
你就可以看到一个在windows下运行的gtk程序了!
(以下是一段很简单的gtk代码)
#include <gtk/gtk.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
GtkWidget *win, *label;
gtk_set_locale();
gtk_init(&argc, &argv);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(GTK_WIDGET(win), 200, 100);
gtk_window_set_title(GTK_WINDOW(win), "Test");
gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(gtk_exit), NULL);
label=gtk_label_new("Hello, GTK+/n");
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(label));
gtk_widget_show_all(win);
gtk_main();
return 0;
}