解决gedit: symbol lookup error: /home/xxx/libgobject-2.0.so.0: undefined symbol: g_date_copy问题

操作系统:Ubuntu 16.04

问题描述:

在终端启动gedit命令或者vscode命令报错:gedit: symbol lookup error: /home/chujie/anaconda3/lib/libgobject-2.0.so.0: undefined symbol: g_date_copy

问题分析

导致错误的原因应该是gedit依赖libgobject-2.0.so库,而/home/chujie/anaconda3/lib下的这个库版本不对,没有对应的符号。

因此解决的思路是从系统中找到正确的依赖库。

查找系统中存在的libgobject库:

locate libgobject-2.0.so
/home/chujie/anaconda3/lib/libgobject-2.0.la
/home/chujie/anaconda3/lib/libgobject-2.0.so
/home/chujie/anaconda3/lib/libgobject-2.0.so.0
/home/chujie/anaconda3/lib/libgobject-2.0.so.0.5600.1
/usr/lib/x86_64-linux-gnu/libgobject-2.0.a
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2

可以看到除了/home/chujie/anaconda3/lib目录下以外,/usr/lib/x86_64-linux-gnu/目录下也有,且前者的版本应该为libgobject-2.0.so.0.5600.1,后者的版本为libgobject-2.0.so.0.4800.2。应该就是这个版本问题引起的程序错误。

解决办法:

修改环境变量,让gedit链接到正确的库。

# 编辑.bashrc文件
vim ~/.bashrc

# 按快捷键i开始编辑文件,在文件最后一行加上动态链接库路径
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

# 让配置文件生效
source ~/.bashrc

# 重新查看gedit的链接库
cd /usr/bin
ldd gedit | grep libgobject-2.0

# 链接库已经变成:
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f0b242ad000)

再从终端输入命令:gedit

就可以正常启动记事本了。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值