最近想学点linux,在学习到gtk+/gnome中碰到了如下问题:
首先编译第一个程序,gnome1.c代码如下:
1、使用命令 gcc gnome1 -o gnome1.c 'gnome-config --cflags -libs gnomeui'
结果出来个:gnome.h没有那个文件或目录
然而我在/usr/include/gnome-1.0/中找到了gnome.h文件,把路径 -I/usr/include/gnome-1.0加上后错误却更多。。
2、接着使用命令 gcc gnome1 -o gnome1.c 'pkg-config --cflags -libs gnomeui'
结果还是出来个:gnome.h没有那个文件或目录
3、直接查看命令:pkg-config --cflags -libs gnomeui
输出结果为:-I/usr/include/gnome-1.0 -I/usr/lib/gnome-libs/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -ldl -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -lglib
这个结果包含了gtk+/gnome所需要的头文件目录和库文件,这时我想如果直接将其加入到编译命令中应该会过的吧,猜想正确!
4、使用命令:gcc gnome1 -o gnome1.c -I/usr/include/gnome-1.0 -I/usr/lib/gnome-libs/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -ldl -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -lglib
编译成功
5、但是这么一看,这个命令也实在是太复杂了点吧,所以决定给它写个makefile文件,为了不让每c文件都写自己的makefile,makefile中定义了一个名为“FILE”的宏,编译某个文件时只需重新定义此宏。请看下边的makefile文件:
这里默认编译的文件名为gnome1.c,如果需要编译其他文件,如:clock.c文件,只需输入命令:make FILE=clock