1

我正在尝试编译gtk+-3.2.0,但我收到一条错误消息./configure

checking for GLIB - version >= 2.29.14... 
*** 'pkg-config --modversion glib-2.0' returned 2.32.4, but GLIB (2.34.0)
*** was found! If pkg-config was correct, then it is best
*** to remove the old version of GLib. You may also be able to fix the error
*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing
*** /etc/ld.so.conf. Make sure you have run ldconfig if that is
*** required on your system.
*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH
*** to point to the correct configuration files
no
configure: error: 
*** GLIB 2.29.14 or better is required. The latest version of
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.

我真的有 GLIB 2.34.0(我也从源代码编译过),但我不知道如何 gtk 知道这个库。我已将 PKG_CONFIG_PATH 更改为指向新 glib 安装所在的路径,ldconfig但没有区别。通过修改 /etc/ld.so.conf 我真的不知道该怎么做。

4

1 回答 1

1

PKG_CONFIG_PATH应包含您要使用的 GLib 版本的 .pc 文件所在目录的路径。

否则,请使用您的包管理器来检测哪个包安装了您不想使用的 .pc 文件。并删除该包。例如,在基于 rpm 的发行版上,运行:

strace -eopen pkg-config --modversion glib-2.0 2>&1 | grep "\.pc"

它将返回 pkg-config 检测到的 .pc 文件的位置。

open("/usr/lib64/pkgconfig/glib-2.0.pc", O_RDONLY) = 3

然后检测这个文件属于哪个包:

rpm -qf /usr/lib64/pkgconfig/glib-2.0.pc

这是我的 Mageia 2 系统上的结果:

lib64glib2.0-devel-2.32.4-1.1.mga2

删除此软件包将删除妨碍您的 .pc。PKG_CONFIG_PATH但是,如果删除包也会尝试删除您仍想使用的其他依赖项,您应该更喜欢该方法。

于 2012-11-25T01:05:46.447 回答