了解过GTK+之后,下面要进行的是环境搭建工作,以便进行GTK+的学习。环境的搭建需要分为Windows和Linux两个平台:
Windows平台:
在
[url]http://www.gtk.org/download.html[/url] 可 以找到Windows(32-bit)和64-bit的版本下载,按照自己的系统是32位还是64位选择相应的版本,页面中的GTK+ individual packages是GTK+运行所必须的库,Third Party Dependencies是第三方依赖库。这样我们就能够根据需要下载相应的库文件,能够使GTK+库最小化。如果想要简单的话,页面上也提供了一个 bundle包,这是将所有库打包在一起的,可以下载这个使用。注意,bundle包并没有单列出来,而是在页面正文中给出的链接,可能需要小心找找。
这里我们下载bundle包,解压缩之后,可以将里面的bin文件夹添加到环境变量path里面,以便我们编译出的exe文件运行时可以找到那 些dll。否则的话需要将这些dll复制到和exe同一目录下。还可以将bin里面的这些dll全部复制到C:/WINDOWS/system32文件夹 下,因为即使将这些添加到系统环境变量,在IDE里面运行也是找不到dll的,复制到system32文件夹下就可以了。
下面使用VC6来配置编译环境。
首先在VC6的Tools-Options下面的Directories选择Include files,添加GTK+目录下的include文件夹以及里面的所有一级子目录,然后添加lib文件夹下的子目录中的include文件夹,这样的话一共是添加10个目录:
然后在Library files里面添加GTK+目录下的lib文件夹:
这样之后VC6就已经配置好了,VS2008之类的也类似配置。下面新建一个控制台工程(VC6)或者是空工程(VS2008),打开工程的 settings,在link选项卡下清空里面原有的Object/library modules,然后添加glib-2.0.lib gtk-win32-2.0.lib gdk-win32-2.0.lib gobject-2.0.lib gdk_pixbuf-2.0.lib gthread-2.0.lib gmodule-2.0.lib pango-1.0.lib intl.lib 几个,确定即可。这里使用的是VC6,VS2008里面也有类似的设置。
这样设置之后可以新建一个main.c文件,然后输入:
#include <gtk/gtk.h>
int main(int argc, char** argv)
{
GtkWidget* window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show(window);
gtk_main();
return 0;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show(window);
gtk_main();
return 0;
}
编译、链接、运行,有窗口出现,说明环境配置成功:
Linux平台:
首先声明,我是用的Linux版本是Ubuntu,桌面环境是gnome。前面也说过gnome就是使用GTK+编写,所以运行环境不需要另外配置了,要做的是安装开发所需要的环境。
刚刚安装好的Ubuntu已经默认安装了gcc,但是并没有安装所需要的头文件,我们需要手动添加:
sudo apt-get install build-essential
然后再安装gnome开发包:
sudo apt-get install gnome-core-devel
系统会自动找到所依赖的库,并一起下载下来。
这样安装过后使用下面的命令编译上面的代码:
gcc main.c -o main `pkg-config --cflags --libs gtk+-2.0
注意,这里的`是键盘上1左面的反引号,不是单引号。
这里不清楚KDE桌面怎样配置GTK+,可能步骤也类似,但是需要先安装GTK+的运行环境吧?
上面是Windows和Linux平台下GTK+的环境配置。这些步骤在我的机器上已经测试通过了。在配置好环境后,下面我们就开始新的学习了。
本文出自 “豆子空间 ” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/108092