龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

GTK+ FAQ

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
2. 如何寻找, 设定, 安装, 及错误处理? 2.1 要执行GTK+需要什麽? 要编译GTK+, 您只需要C编译器(gcc)及X Window System及相关函数库即可. 2.2 要到那里取得GTK+? 正式的位置: FTP://ftp.gtk.org/pub/gtk 当然

  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所产生的. 在最下面是错误发生的地方.

  

精彩图集

赞助商链接