编译命令:
gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
这里使用了 pkg-config 程序,可以从 www.freedesktop.org 得到。这个pkg-config 程序读取了 GTK 附带的 .pc 文件来决定编译 GTK 程序需要的编译选项。
pkg-config –cflags gtk+-2.0 列出 include 目录,pkg-config –libs gtk+-2.0 列出编译连接库,也可以合在一起,像这样:
pkg-config --cflags --libs gtk+-2.0
注意:上面编译命令中使用的单引号类型是很重要的。
译者注:这里使用了“命令替换”。
- 命令替换(command substitution)使得可以捕获一个命令的输出,而在另一个命令中替换它;
- 这个单引号不是回车键左边的那个,而是ESC键下面的那个哟:
连接时常用的库:
- GTK 库(-lgtk)
属于构件库,基于 GDK; - GDK 库(-lgdk)
属于Xlib 库的封装(wrapper); - gdk-pixbuf 库(-lgdk_pixbuf)
属于图像处理库; - Pango 库(-lpango)
用于处理国际化文本; - gobject 库(-lgobject)
包含作为 GTK 基础的类型系统; - gmodule 库(-lgmodule)
属于动态运行库; - GLib 库(-lglib)
包含各种函数;
这个示例里只用了 g_print();
GTK 是基于 GLib 的,因此你总需要这个库;
可以详见 GLib 这一章; - Xlib 库(-lX11)
GDK库 要使用该Xlib库; - Xext 库(-lXext)
包含共享内存位图和其它 X 扩展; - math 库(-lm)
属于数学库,这个被 GTK 因各种目的而使用;