红联Linux门户
Linux帮助

编译GTK2.0程序

发布时间:2008-04-06 00:29:27来源:红联作者:yashu
GTK是开发Gnome窗口的c/c++语言图形库。在Ubuntu的机器上折腾了一下,复制了网上教程的代码在本机上编译。代码的文件名:t1.c。按照教程,用以下命令编译:

gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`

编译结果:找不到gtk/gtk.h。

因为我的Ubuntu是Gnome系统,所以我以为gtk+2.0的开发程序(头文件和库文件)应该已经安装在计算机上了。其实不然,如果在Ubuntu上开发gtk+2.0的程序,需要安装相应的头文件和库。在控制台窗口输入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件统通下载安装完毕。再次应用编译命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,编译通过,运行。

pkg-config是一个用来管理包的程序,在控制台输入 pkg-config --cflags --libs gtk+-2.0 的运行结果:

-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

可以看出,输出的文本包括了gcc编译gtk+2.0所需要的所有选项(头文件目录和库文件)。

这里有一点需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0两侧的引号并不是真正的引号,而是键盘数字件那一行,最左边的那个字符。如果错用了单引号,gcc无法使用 pkg-config --cflags --libs gtk+-2.0产生的文本作为编译选项。
文章评论

共有 4 条评论

  1. YunGe 于 2011-04-28 12:31:20发表:

    我在控制台窗口输入sudo apt-get install libgtk2.0*, 提示错误:找不到apt-get指令。
    求救!!!

  2. YunGe 于 2011-04-28 12:31:11发表:

    我在控制台窗口输入sudo apt-get install libgtk2.0*, 提示错误:找不到apt-get指令。
    求救!!!

  3. tomorrow207 于 2009-12-02 10:27:40发表:

    恩,回去试试

  4. kkk215215 于 2008-04-07 22:47:46发表:

    fc8下不用安装头文件和库的。网上的教程,经典的像HELLO,可以直接编译运行。
    初次接触GTK+,觉得这东西还是挺不错的。