二、查看GTK库版本
1、查看1.2.x版本
pkg-config --modversion gtk+
2、查看 2.x 版本
pkg-config --modversion gtk+-2.0
3、查看pkg-config的版本
pkg-config --version
4、查看是否安装了gtk
pkg-config --list-all grep gtk
三、测试程序
//Helloworld.c
#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *label;
gtk_init(&argc,&argv);
/* create the main, top level, window */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* give it the title */
gtk_window_set_title(GTK_WINDOW(window),"Hello World");
/* connect the destroy signal of the window to gtk_main_quit
* when the window is about to be destroyed we get a notification and
* stop the main GTK+ loop
*/
g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL);
/* create the "Hello, World" label */
label = gtk_label_new("Hello, World");
/* and insert it into the main window */
gtk_container_add(GTK_CONTAINER(window),label);
/* make sure that everything, window and label, are visible */
gtk_widget_show_all(window);
/* start the main loop, and let it rest until the application is closed */
gtk_main();
return 0;
}
四、编译运行
1、编译
gcc -o Helloworld Helloworld.c `pkg-config --cflags --libs gtk+-2.0`
2、运行
./Helloworld
在eclipse中配置gtk+
网上的教程一般到这里也就完事了,但是这是远远不行的,正像我开头说的,我们不可能一直用记事本开发,所以还是要在eclipse之类的IDE中做开发的。关于IDE的选择我就不多说了,只是个人习惯而已。
在eclipse中配置gtk之前,我当然也去查找了很多资料,最后发现一个比较靠普的:
但是这个是在windows下配置的,虽然差别不大,我在Ubuntu中也按照文中所给的方法测试成功了,但是有个问题,我不仅仅需要一个gtk+库,我还需要libxml2库,可能以后还需要libzip之类的第三方库。所以不能一直在IDE中运行。比较客观的一个原因是:eclipse的console输入很蛋疼,用shell + make 的方式也要比单纯依赖IDE要灵活的多,最后一个原因就是我的eclipse总是时不时的崩溃。。。。
还是为了以隮万一,我做了部分摘抄:
一 4查看gtk+2.0的头文件目标和库文件名称
linuxidc@linuxidc:~/study/gtk/pkg$ pkg-config --cflags gtk+-2.0 # 查看gtk+头文件目标
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz
linuxidc@linuxidc:~/study/gtk/pkg$ pkg-config --libs gtk+-2.0 # 查看gtk+库文件名称
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype
linuxidc@linuxidc:~/study/gtk/pkg$
由于我们要经常使用,所以可以用重定向把这些东西输出到一个文件:
下面是我把格式改了一下之后的后果[其实就是对齐了而已]
linuxidc@linuxidc:~/study/gtk/pkg$ cat includes
1 -pthread
2 -I/usr/include/gtk-2.0
3 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include
4 -I/usr/include/atk-1.0
5 -I/usr/include/cairo
6 -I/usr/include/gdk-pixbuf-2.0
7 -I/usr/include/pango-1.0
8 -I/usr/include/gio-unix-2.0/
9 -I/usr/include/freetype2
10 -I/usr/include/glib-2.0
11 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
12 -I/usr/include/pixman-1
13 -I/usr/include/libpng12
14 -I/usr/include/harfbuzz
linuxidc@linuxidc:~/study/gtk/pkg$ cat libs
1 -lgtk-x11-2.0
2 -lgdk-x11-2.0
3 -latk-1.0
4 -lgio-2.0
5 -lpangoft2-1.0
6 -lpangocairo-1.0
7 -lgdk_pixbuf-2.0
8 -lcairo
9 -lpango-1.0
10 -lfontconfig
11 -lgobject-2.0
12 -lglib-2.0
13 -lfreetype
linuxidc@linuxidc:~/study/gtk/pkg$