软讯网络 > 操作系统 > Linux > debian sarge3.1下用gtkimage和gdkpixbuf编程的弯路
【标 题】:debian sarge3.1下用gtkimage和gdkpixbuf编程的弯路
【关键字】:
debian,sarge3.1,gtkimage,gdkpixbuf
【来 源】:http://blog.chinaunix.net/article.php?articleId=56626&blogId=3185
debian sarge3.1下用gtkimage和gdkpixbuf编程的弯路

debian sarge3.1,准备用gtkimage和gdkpixbuf编程。
用apt-cache搜索一下gdk-pixbuf,找到libgdk-pixbuf-dev包,install,发现要安装gtk1.2,很晕,都2.0了,还要1.2的,可能就这么依赖的吧。然后编写程序,include进<gdk-pixbuf/gdk-pixbuf-loader.h>,编译,出错,说没这个头文件,然后在/usr/include里找,在/usr/include/gdk-pixbuf-1.0中找到gdk-pixbuf这个目录,想到没用`pkg-config`,然后在命令行中加入,结果还不行,那么pkg-config --cflags gtk+-2.0,结果说没这个,郁闷,于是回到gtk-config --cflags --libs,一看输出gtk1.2的,倒也正常,继续编译,还不行,那么就把-I/usr/include/gdk-pixbuf-1.0加进去,编译可以了。但说gdk_pixbuf*函数没有对应的库,于是-lgdk_pixbuf,gtk_image_new_from_pixbuf还没有,晕,变成gtk_image_new再说,又说参数少,更晕,于是到gtk_image.h中看,一看不要紧,发现根本没有gtk_image_new_from_pixbuf这个函数,于是想到要下载gtk2,原来这里根本没有gtk2的开发包,就是没有gtk2的头文件。下载完毕,编译,说 gdk_pixbuf_loader_write和gdk_pixbuf_loader_close参数少,那么再到gdk-pixbuf-loader.h里面看看,不少啊,忽然想到下载gtk2后才说少,那么就是有两个gdk-pixbuf-loader.h文件了,find一下,果然,这才知道gtk2对gtk_image和gdk_pixbuf都有改变了,然后将#include <gdk-pixbuf/gdk-pixbuf.h>注释掉,并按照gtk2中的头文件加了个参数NULL,通过,运行通过,然后pkg-config gtk+-2.0也有结果了,于是取代gtk-config,并将-lgdk_pixbuf和-I/usr/include/gdk-pixbuf-1.0删掉,正常,将libgdk-pixbuf-dev和libgtk1.2软件包删除,仍然正常。通过网上的GtkImage网页对gdk_pixbuf的链接,找到gdk_pixbuf的网页,发现确实和我已有的不一样,我的过时了。
教训:一开始下载libgtk2.0-dev就行了,非得找libgdk-pixbuf,结果闹事。幸好经验丰富,否则晕菜了。
并且自己在网上找的gdk-pixbuf资料过时,少参数那里,GError。