我有 Ubuntu 14.04 32 位。我试图从源代码编译一个应用程序。它在链接make
过程中给我一个错误消息,./autogen.sh
但./configure
没有错误地通过。我收到这个错误,undefined reference to g_variant_parse_error_quark
我读到该函数g_variant_parse_error_quark
在 2.39 中添加到 glib2。我检查了已安装的软件包,发现我的系统中的 libglib 版本是 2.40.0。但是
pkg-config --modversion glib-2.0
报告2.38.2
看来我至少安装了两个不同的 glib2。我以前可能手动从源代码安装了 glib2。
我该如何修复该问题并让我的系统使用正确的最新库?
答案1
正如我猜测的那样,它源于多个库冲突。当我运行
echo $PKG_CONFIG_PATH
它返回空行
然后我搜索了
locate glib-2.0.pc
我得到了
/usr/lib/i386-linux-gnu/pkgconfig/glib-2.0.pc
/usr/lib/i386-linux-gnu/pkgconfig/spice-client-glib-2.0.pc
/usr/local/lib/pkgconfig/glib-2.0.pc
我也跑
pkg-config --debug --modversion glib-2.0
查找搜索过的目录
我查看了文件glib-2.0.pc
并检查了版本号。
我找到了正确的glib-2.0.pc
文件
然后我跑
export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/
然后./autogen.sh
之后make
一切顺利