Chinaunix首页 | 论坛 | 博客
  • 博客访问: 527059
  • 博文数量: 128
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 1345
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-22 21:43
文章分类

全部博文(128)

文章存档

2009年(30)

2008年(98)

我的朋友

分类: C/C++

2008-05-09 23:19:51

安装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

阅读(2208) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-07-15 21:17:59

谢谢了兄弟,发自肺腑啊

peitomb2008-07-08 21:33:43

不客气,希望有帮助

Etual2008-07-07 23:32:01

感谢兄弟的笔记 :) 我花了一个晚上去手工编译GTK ...... 恰好有兄弟的测试程序,还有几点经验,顿时茅塞顿开 再次感谢了 :)