pkg-config
时间:2010-07-15 来源:ou_yang23
昨天按照参考书上的例子敲了一个最简单的GTK+的程序base.c,代码如下:
#include <gtk/gtk.h>
int main(int argc, char* argv[])
{GtkWidget *window;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main();
return FALSE;
}
然后用命令行直接编译:
$ gcc -o base base.c 'pkg-config --cflags --libs gtk+-2.0'
可是出现了如下错误:
gcc: pkg-config --cflags --libs gtk+-2.0: 没有那个文件或目录
base.c:1:21: gtk/gtk.h: 没有那个文件或目录
base.c: In function `main':
base.c:4: error: `GtkWidget' undeclared (first use in this function)
base.c:4: error: (Each undeclared identifier is reported only once
base.c:4: error: for each function it appears in.)
base.c:4: error: `window' undeclared (first use in this function)
base.c:6: error: `GTK_WINDOW_TOPLEVEL' undeclared (first use in this function)
base.c:9: error: `FALSE' undeclared (first use in this function)
百思不得其解,以为没装gtk,下载了gkt重新安装,还是不行.在网上搜索了大半天,终于发现问题所在:
$ gcc -o base base.c 'pkg-config --cflags --libs gtk+-2.0'
问题出现在那两个单引号上! 不是键盘上分号旁边的那个单引号,而是数字1左边,Tab键上边的那 个符号.
正确的书写如下:
$ gcc -o base base.c `pkg-config --cflags --libs gtk+-2.0`
这样子就可以编译通过了.
在GTK+2.0 FAQ 4.3中对此有叙述:
http://www.huihoo.com/gnu/gtk+_FAQ/GTK+_FAQ.htm
4.3. 我尝试编译一个小型的Hello World程序,但是失败了,有什么线索? [GTK 2.x]
我尝试编译一个小型的Hello World程序,但是失败了,有什么线索? [GTK 2.x]
既然你很擅长编程,我们在这里将不会讨论编译时间错误(compile time error).
gcc -o myprog [c files] `pkg-config gtk+-2.0 --cflags --libs`
...........其中所说的'后置引用'就是Tab键上边那个符号,'引用 '就是分号旁边那个单引号.但是我第一次看的时候确实不知所云.可能linux基础知识太贫乏的缘故吧.
另外,为了避免每次编译都在终端 上输入gcc.....那一长串命令,可以使用linux提供的make工具.步骤如下:
假设base.c在base目录下,同样在base目录 下编辑建立新文件makefile或者Makefile:
$ vi makefile
按i键,然后输入如下代码:
CC = gcc
all:
$(CC) -o base base.c `pkg-config --cflags --libs gtk+-2.0`
注意$(CC)前边不是空格,而是一个Tab键,引用使用的是Tab键上边那个'后向引用'符号,按 Esc,输入:wq退出到base目录下.输入
$ make
编 译成功后,输入
$ ./base
就会出现最 简单的那个窗口啦!

<img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" alt="弓箭勇者最新版" />
飞行射击 下载
<img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" alt="弓箭勇者最新版" />
飞行射击 下载
<img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" alt="弓箭勇者最新版" />
飞行射击 下载- 4 <img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" alt="弓箭勇者最新版" />下载73.78MB · 99℃
1970-01-01
- 5 <img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" alt="弓箭勇者最新版" />下载43.7 MB · 93℃
1970-01-01
- 6 <img preview="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" width="32" height="32" src="http://pic.pdowncc.com/uploadimg/ico/2025/0523/1747993424374100.png" alt="弓箭勇者最新版" />下载110.69MB · 96℃
1970-01-01