You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian Stretch编译gobject-introspection-1.70.0报错问题求助

问题根因

Debian Stretch 系统自带的 glib 库默认将核心库文件安装到 /lib/x86_64-linux-gnu 路径下,该路径在 Linux 动态链接器的搜索优先级高于你编译安装新版 glib 所用的 /usr/lib/x86_64-linux-gnu 路径。即便 pkg-config 配置已经指向 2.70.0 版本的 glib,程序运行时仍会优先加载 /lib 路径下不含 g_date_copy 符号的旧版 glib,最终触发未定义符号报错。

解决方法

方法一:清理旧版冗余库(适合个人开发环境,确认无其他程序依赖旧版 glib 时使用)

  • 先备份旧版库文件防止系统异常:
sudo cp /lib/x86_64-linux-gnu/libglib-2.0.so.0 /lib/x86_64-linux-gnu/libglib-2.0.so.0.bak
sudo cp /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3 /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3.bak
  • 删除 /lib 路径下的旧版 glib 库文件:
sudo rm /lib/x86_64-linux-gnu/libglib-2.0.so.0 /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.3
  • 刷新动态库缓存:
sudo ldconfig
  • 重新编译 gobject-introspection 即可正常通过。

方法二:调整动态库搜索优先级(更稳妥,兼容依赖旧版 glib 的系统程序)

  • 将新版 glib 所在的 /usr/lib/x86_64-linux-gnu 路径加到动态库搜索规则的最优先级:
echo "/usr/lib/x86_64-linux-gnu" | sudo tee /etc/ld.so.conf.d/00-user-lib.conf
  • 刷新动态库缓存:
sudo ldconfig
  • 验证动态链接是否正确:执行 ldd /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 确认其依赖的 libglib-2.0.so.0 指向 /usr/lib/x86_64-linux-gnu 下的新版文件,再重新编译即可。

内容的提问来源于stack exchange,提问作者blackfilms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:57:03