安装gtk+开发环境
sudo apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具
sudo apt-get install libgtk2.0-dev
第一个gtk测试程序:
//
// Auth : PeiZhengfeng
// Date : 2008-05-09 22:04:36
// Purpose : 测试GTK
//
#include
#include
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 0;
}
相应的Makefile
#
# gtk-2.0 测试
#
testc : testc.o
cc -o testc testc.o `pkg-config gtk+-2.0 --libs --cflags`
testc.o : testc.c
cc -c testc.c `pkg-config gtk+-2.0 --libs --cflags`
clean:
rm -rf *.o
编译:
make
说明:
在shell中输入
teapot@teapot:~/src/gnome/gtk+$ pkg-config gtk+-2.0 --libs --cflags
得到如下信息
-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 -I/usr/include/pixman-1 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
如果没有:使用
gtk-config --libs --cflags
这得到gtk要引入的库文件和头文件
编译报如下问题,但编译已成功,可以运行
teapot@teapot:~/src/gnome/gtk+$ make
cc -c testc.c `pkg-config gtk+-2.0 --libs --cflags`
cc: -lgtk-x11-2.0:未使用链接器输入文件,因为链接尚未完成
cc: -lgdk-x11-2.0:未使用链接器输入文件,因为链接尚未完成
cc: -latk-1.0:未使用链接器输入文件,因为链接尚未完成
cc: -lgdk_pixbuf-2.0:未使用链接器输入文件,因为链接尚未完成
cc: -lm:未使用链接器输入文件,因为链接尚未完成
cc: -lpangocairo-1.0:未使用链接器输入文件,因为链接尚未完成
cc: -lpango-1.0:未使用链接器输入文件,因为链接尚未完成
cc: -lcairo:未使用链接器输入文件,因为链接尚未完成
cc: -lgobject-2.0:未使用链接器输入文件,因为链接尚未完成
cc: -lgmodule-2.0:未使用链接器输入文件,因为链接尚未完成
cc: -ldl:未使用链接器输入文件,因为链接尚未完成
cc: -lglib-2.0:未使用链接器输入文件,因为链接尚未完成
cc -o testc testc.o `pkg-config gtk+-2.0 --libs --cflags`
解决未使用链接器输入语言件,因为链接尚未完成
重新编写Makefile
#
# gtk-2.0 测试
#
#testc : testc.o
# cc -o testc testc.o `pkg-config gtk+-2.0 --libs --cflags`
#testc.o : testc.c
# cc -c testc.c `pkg-config gtk+-2.0 --libs --cflags`
cc=gcc
INCLUDE=.
CFLAGS=`pkg-config gtk+-2.0 --libs --cflags`
testc : testc.o
$(CC) -o testc testc.o -I$(CFLAGS) -I$(INCLUDE)
testc.o : testc.c
$(CC) -c testc.c -I$(CFLAGS) -I$(INCLUDE)
clean:
rm -rf *.o
阅读(2242) | 评论(3) | 转发(0) |