技术在于专研
分类: LINUX
2007-04-14 12:36:53
GTK+是个很大的包,它依赖于很多其它的工具和库. 如果在你的系统中可能的话,推荐你安装已经编译好的包,如:rpm包或deb包.
要从源码编译GTK+, 你的系统中需要有一个 C编译器(gcc), X Window系统以及其相关的开发库及开发包.
你还需要GTK+所依赖的工具和库文件. 下面按照它们的安装次列出来:
正式的网站是: .
这个网站在发布新版本的GTK+是,通常会十分繁忙, 你可以尝试从镜像列表中的一个网站来下载GTK+: .
这里列出其中的一些镜像:
通常情况下,你只需要在GTK+的源码目录下面输入这几个命令就可以完成编译:
./configure make make install
安装GTK+所依赖的包时, 也可以使用这样的方法和命令.
你可以向 configure 脚本传递一些参数来改变默认的设置. 或许你最需要就是 '--prefix'参数, 它用来指定软件包最终被安装到什么位置, 如:
./configure --prefix=/usr/local/
Makefile
line 456: Syntax erro"[GTK 2.x]
确认你使用的是 GNU make(使用'make -v'来检查). 奇怪的是 make 有好几个不同的版本, 并且不是每一个版本都能自动的生成 Makefiles文件.
遇到这样的情况大多数情况下是因为无法找到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
通常情况下有几种原因导致了这个结果:
pkg-config
(或者其它GTK的组件), 或者仅有一个旧的版本. 输入: pkg-config gtk+-2.0 --modversion
来检查一下. 如果返回的不是你所期望的版本, 那么, 你的系统中确实是有一个旧的GTK.
如果上面所提到内容无法帮助你解决问题的话, 请查 config.log, 它是运行./configure 时生成的日志文件. 文件最后是运行出错时的部分, 如果是其内容是源码的话, 就把它复制到一个文件中, 然后用config.log中它上面的一行来编译它. 如果编译成功的话, 试试运行它.