这一部分介绍的是在Windows/Linux下配置GTK+(C语言)编译及运行环境的方法。如果内容存在错误,或者方法不适用与你的电脑,请在下方评论区留言给我,谢谢!
在Linux下配置GTK+编译环境
Linux的X Window是GTK+主要应用的地方,在Linux下配置GTK+应该是比较容易成功的。当然,你的Linux需要有GNOME或Xfce这样的桌面环境(不建议在KDE下运行GTK+应用程序)。
如果你的Linux像Ubuntu这样有一个软件库,那就太方便了,直接安装包libgtk2.0-dev即可。如果不能直接安装软件包,你还可以直接到http://www.gtk.org/download-linux.html下载,那个安装指南会对你有帮助的。
然后是编辑器的问题。像Anjuta这样的编辑器可以直接创建GTK+项目,你可以利用这个功能,很方便。如果你的编辑器不能创建GTK+项目,或者你根本不打算用编辑器,你可以用pkgconfig命令获得你用gcc编译时所需的参数:
pkg-config --cflags --libs gtk+-2.0 |
这一系列以后的文章中会用到Glade界面设计器,请安装包glade或到http://ftp.gnome.org/pub/GNOME/sources/glade3/3.6/下载Source来编译。要注意的是,Glade本身也是一个GTK+应用程序,需要在GTK+的桌面环境中运行。
在Windows下配置GTK+编译环境
在Windows下配置编译环境就有些麻烦。这里看来要用支持创建GTK+项目的编辑器来帮忙了。
这里介绍在Code::Blocks编辑器和MinGW GCC编译器下编译GTK+程序的方法。(其实在Visual Studio下也可以编译GTK+的,但是这里不推荐。)
装好Code::Blocks
如果你不熟悉Code::Blocks,建议看看我以前写的这篇文章。
安装GTK+开发库和Glade界面编辑器
这里介绍一个简单的方法。Glade有的发布版直接包含有GTK+开发库。到Glade主页http://glade.gnome.org/右边的Windows Binaries中找Glade3-x.x.x-with-gtk.exe这样的版本下载安装。建议装到C:\gtk\。
但是可能Glade自带的GTK+开发库不是最新的,无法实现一下高版本的GTK+提供的功能,因此最好到GTK+下载页http://www.gtk.org/download-windows.html下载一个All-in-one bundles。下载下来之后直接解压到刚刚Glade的安装目录即可。
在Code::Blocks中建立GTK+项目
Code::Blocks中,File->New->Project中应该会有GTK+ Project这一选项。按着向导新建即可,但要注意几个地方:项目文件完整路径必须是英文的,Code::Blocks对中文路径和文件名支持不佳;GTK’s location必须指定为你刚刚安装的GTK+开发库所在文件夹。
测试你的编译环境
就拿Code::Blocks为我们自动生成的这段程序做测试吧:
#include <stdlib.h>#include <gtk/gtk.h>staticvoid helloWorld (GtkWidget *wid, GtkWidget *win){ GtkWidget *dialog = NULL; dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE,"Hello World!"); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog);}int main (int argc,char*argv[]){ GtkWidget *button = NULL; GtkWidget *win = NULL; GtkWidget *vbox = NULL;/* Initialize GTK+ */ g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING,(GLogFunc) gtk_false, NULL); gtk_init (&argc,&argv); g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);/* Create the main window */ win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (win),8); gtk_window_set_title (GTK_WINDOW (win),"Hello World"); gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER); gtk_widget_realize (win); g_signal_connect (win,"destroy", gtk_main_quit, NULL);/* Create a vertical box with buttons */ vbox = gtk_vbox_new (TRUE,6); gtk_container_add (GTK_CONTAINER (win), vbox); button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO); g_signal_connect (G_OBJECT (button),"clicked", G_CALLBACK (helloWorld),(gpointer) win); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE,0); button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); g_signal_connect (button,"clicked", gtk_main_quit, NULL); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE,0);/* Enter the main loop */ gtk_widget_show_all (win); gtk_main ();return0;} |
这段程序会建立一个有两个按钮的窗口。Windows下还会另外有个小黑窗口,方便调试用的;指定Build->Select target->Release之后再编译,编译出来的“Release”版本就没有小黑窗口了。
如果你编译失败——不幸,但是你可以在下面留言给我。
在Windows下制作一个GTK+运行环境
你需要明白的是,GTK+是需要运行库的——Linux下一般都会自带有,Windows下就没那么幸运了。如果你的程序需要在别人的电脑上运行,你往往需要附带一个GTK+运行库,运行库的制作方法是把http://www.gtk.org/download-windows.html中的所有Binary组合起来。
为了方便大家,我自己做了一个运行库,经过一定精简(只有中英两种语言),大小13MB(压缩后3MB)。大家可以到这里下载。
用法就是把程序及程序用到的文件放进来,使程序与运行库的那堆dll在同一级文件夹下。然后整个文件夹就可以作为便携软件在不含GTK+的Windows中使用了。
另外,GTK+运行库是支持主题的。你可以为GTK+指定主题,给那些按钮换一个样子。GTK+主题文件位于运行库的\etc\gtk-2.0文件夹中,名为gtkrc。我制作的运行库指定了GTK+使用Windows主题。你可以在网上搜出很多GTK+ themes,使用方法就是替换gtkrc文件。
本文由 最后的叶子 创作,转载或引用前请联系我们。
相关文章: