首页 > 学院 > 开发设计 > 正文

GTK+ FAQ

2019-11-17 05:39:32
字体:
来源:转载
供稿:网友

  2. 如何寻找, 设定, 安装, 及错误处理?
2.1 要执行GTK+需要什麽?
要编译GTK+, 您只需要C编译器(gcc)及X Window System及相关函数库即可.


2.2 要到那里取得GTK+?
正式的位置:

FTP://ftp.gtk.org/pub/gtk

当然了, 任何ftp.gtk.org映射站都会有最後版本.

2.3 我要如何编译设定GTK+?
一般来说, 您只需要打入以下命令:

./configure
make

在gtk+-version/目录下.

2.4 当编译GTK+时, 我挨了这麽一记: make: file `Makefile' line 456: Syntax error
请确定您正在使用GNU make (用make -v来确认). 有很多希奇但不错的版本的make, 但不是全部都能处理好自动产生的Makefiles.



2.5 我已经编译好并安装好GTK+, 但我不能令任何程式来链结它!
这个问题遇得很多, 当GTK+函数库找不到或是错误的版本. 一般, 编译器会抱怨'unresolved symbol'. 您得要检查两件事:

确认函数库找得到. 您会需要去编辑 /etc/ld.so.conf把GTK函数库目录包含进去, 看起来像这样:
/usr/X11R6/lib
/usr/local/lib

然後要在root下执行 /sbin/ldconfig. 您可以用
gtk-config --libs

来找出GTK正在用的目录. 假如您的系统并不使用ld.so来找函数库(像Solaris就是), 那麽您需要使用LD_LIBRARY_PATH环境变数来设定参数 (或编译该路径到您的程式, 这里我就不讲了. 若您用Bourne式的shell您可以用(假设您的GTK是在/usr/local/lib):
eXPort LD_LIBRARY_PATH=/usr/local/lib

而在csh, 您可以:
setenv LD_LIBRARY_PATH /usr/local/lib

确定您的linker可以找到正确的函数库. 假如您的linux版本已经安装GTK+(例如, RedHat 5.0), 那麽可能是用旧一点的版本. 现在, 输入以下命令:
rpm -e gtk gtk-devel

您可能会想要移除这些gtk相关程式: (rpm会告诉您那些是相关的). 假如您没有RedHat Linux系统, 查看看可能在
/usr/lib


/usr/local/lib

包含许多函数库像libgtk, libgdk, libglib, or libgck. 假如有, 将它们移除 (and any gtk include files, sUCh as /usr/include/gtk and /usr/include/gdk) 并重新安装gtk+.

2.6 当编译GTK+程式时, 我中了这麽一记, 找不到"glibconfig.h".
标头档"glibconfig.h"被从$exec_PRefix/lib/glib/include/移除掉了. $exec_prefix是当您configure时指定给--exec-prefix的设定. 它内定为$prefix, (specified with --prefix), 然後会变成/usr/local/.

这是因为"glibconfig.h"包含了架构独立的设定资讯, 而其它的档案都放在$prefix/include, 这样可以使不同架构平台共用.

GTK+包含了一个shell script, gtk-config, 可以用来找出正确的include路径. GTK+入门导引有一些范例使用gtk-config. 更复杂的设定可以参考在GTK+内的docs/gtk-config.txt.

假如您正试著要编译一个老程式, 您可以用这样的设定:


CPPFLAGS="-I/usr/local/include/glib/include" ./configure

Bourne-compatible shells像bash, 或csh variants可用:



setenv CPPFLAGS "-I/usr/local/include/glib/include"
./configure

(替换/usr/local为适当的$exec_prefix)


2.7 安装GIMP时, configure说它找不到GTK.
有好几个可能的理由:

您可能有个老一点的版本的GTK安装在那里. 例如RedHat 5.0 安装了老一点版本的GTK, GIMP没办法用. 您应该把旧的版本移除掉, 但小心这样会把 control-panel的软体搞乱.

gtk-config 不在您的路径中, 或有个比较老的版本在您系统中. 输入:
gtk-config --version

来检查. 假如它返回一个跟您所想得不一样的版本, 那麽您有个旧版GTK在系统上.

./configure script找不到GTK函数库. 因为./configure编译很多种测试程式, 它需要能够找出GTK函数库. 看看上面来解决这个问题.
假如都不是以上所述, 那麽找看看config.log, 这是由./configure所产生的. 在最下面是错误发生的地方.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表