如何得到GTK+并配置,安装和查错?
- 要编译GTK+, 我首先需要安装些什么?[GTK 2.x]
GTK+是个很大的包,它依赖于很多其它的工具和库. 如果在你的系统中可能的话,推荐你安装已经编译好的包,如:rpm包或deb包.
要从源码编译GTK+, 你的系统中需要有一个 C编译器(gcc), X Window系统以及其相关的开发库及开发包.
你还需要GTK+所依赖的工具和库文件. 下面按照它们的安装次列出来:
- pkg-config ("pkg-config 的网站":http://www.freedesktop.org/software/pkgconfig/)
- GNU make ("GNU make 的网站":http://www.gnu.org/software/make/)
- JPEG, PNG 和 TIFF 图形库 ("GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk/v2.2/)
- FreeType ("FreeType 的网站":http://www.freetype.org/)
- fontconfig ("fontconfig 的网站":http://www.fontconfig.org/)
- GNU libiconv 库 (如果你的系统没有提供 iconv() 函数) ("GNU libiconv 的网站":http://www.gnu.org/software/libiconv/)
- GNU gettext (如果你的系统没有提供 gettext() 函数) ("GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk/v2.2/)
- GLib ("GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk/v2.2/)
- Pango ("GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk/v2.2/)
- ATK ("GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk/v2.2/)
- GTK+ ("GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk/v2.2/)
- 那里可以得到GTK+?[GTK 2.x]
正式的网站是: ftp://ftp.gtk.org/pub/gtk..
这个网站在发布新版本的GTK+是,通常会十分繁忙, 你可以尝试从镜像列表中的一个网站来下载GTK+: ftp://ftp.gtk.org/etc/mirrors.
这里列出其中的一些镜像:
- 非洲 - ftp://ftp.is.co.za/applications/gimp
- 澳大利亚 - ftp://ftp.planetmirror.com/pub/gimp/gtk
- 芬兰 - ftp://ftp.funet.fi/pub/sci/graphics/packages/gimp/gtk
- 德国 - ftp://ftp.gwdg.de/pub/misc/grafik/gimp/gtk
- 日本 - ftp://sunsite.sut.ac.jp/pub/archives/packages/gimp/gtk
- 英国 - http://www.mirror.ac.uk/sites/ftp.gimp.org/pub/gtk/
- 如何配置/编译GTK+?[GTK 2.x]
通常情况下,你只需要在GTK+的源码目录下面输入这几个命令就可以完成编译:
./configure make make install安装GTK+所依赖的包时, 也可以使用这样的方法和命令.
你可以向 configure 脚本传递一些参数来改变默认的设置. 或许你最需要就是 '--prefix'参数, 它用来指定软件包最终被安装到什么位置, 如:
./configure --prefix=/usr/local/ - 编译的时候出现错误 如:"make: file
Makefileline 456: Syntax erro"[GTK 2.x]确认你使用的是 GNU make(使用'make -v'来检查). 奇怪的是 make 有好几个不同的版本, 并且不是每一个版本都能自动的生成 Makefiles文件.
- 我编译和安装了GTK+,但是不能将程序和它连接[GTK 2.x]
遇到这样的情况大多数情况下是因为无法找到GTK+库或者版本不致. 这时, 编译器什么报告"unresolved symbol(无法解析的描述符".
确认库文件能被找到. 你可以编辑
/etc/ld.so.conf,在其中加入包含GTK+库的目录, 文件的内容类似如下:/usr/X11R6/lib /usr/local/lib
然后你需要以root身分执行
/sbin/ldconfig. 可以用下面的命令来查看GTK 需要的库:pkg-config gtk+-2.0 --libs
如果你的系统不是使用 ld.so来查找库文件(如 Solaris), 你就必须使用
LD_LIBRARY_PATH环境变量(或者把路径编译到你的程序中,我在这里就不讲述这方面的内容了). 所以, 如果你使用Bourne风格的shell(如bash)你可以使用如下的命令(假设你的GTK库在/usr/local/lib中):export LD_LIBRARY_PATH=/usr/local/lib
如果你使用的是csh, 你可以用下面的命令:
setenv LD_LIBRARY_PATH /usr/local/lib
- 当我安装GTK+的程序时,configure报告不能找到GTK.[GTK 2.x]
通常情况下有几种原因导致了这个结果:
- 你可能在某个地方安装了一个旧的GTK. 你可以把它删除掉, 但是你需要注意的是,这样做之后, 你的那些使用旧版本的GTK编译的程序就不能运行了.
- 在你的路径中找不到
pkg-config(或者其它GTK的组件), 或者仅有一个旧的版本. 输入:
pkg-config gtk+-2.0 --modversion
来检查一下. 如果返回的不是你所期望的版本, 那么, 你的系统中确实是有一个旧的GTK.
- ./configure 脚本找不到GTK库. 执行./configure 时, 它会编译一个测试程序, 所以它需要找到GTK库. 请参照上面的说明.
如果上面所提到内容无法帮助你解决问题的话, 请查 config.log, 它是运行./configure 时生成的日志文件. 文件最后是运行出错时的部分, 如果是其内容是源码的话, 就把它复制到一个文件中, 然后用config.log中它上面的一行来编译它. 如果编译成功的话, 试试运行它.

