“pkg-config --modversion glib-2.0”报告旧版本

ken*_*enn 1 pkg-config libraries configure

我有 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
Run Code Online (Sandbox Code Playgroud)

报告 2.38.2

看来我至少安装了两个不同的 glib2。我过去可能从源代码手动安装了 glib2。

如何解决该问题并让我的系统使用正确的最新库?

ken*_*enn 5

正如我猜测的那样,它源于多个库的冲突。当我跑

 echo $PKG_CONFIG_PATH 
Run Code Online (Sandbox Code Playgroud)

它返回空行

然后我搜索

  locate glib-2.0.pc
Run Code Online (Sandbox Code Playgroud)

我得到了

  /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
Run Code Online (Sandbox Code Playgroud)

我也跑

  pkg-config --debug --modversion glib-2.0
Run Code Online (Sandbox Code Playgroud)

查找搜索了哪些目录

我查看了glib-2.0.pc文件并检查了版本号。

我找到了正确的glib-2.0.pc文件

然后我跑

  export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/
Run Code Online (Sandbox Code Playgroud)

之后./autogen.shmake

顺利