编译命令:

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键下面的那个哟:

    编译 Hello World - 图1

连接时常用的库:

  • 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 因各种目的而使用;