解决问题: libbz2.so.1: cannot open shared object file: No such file or directory

在Ubuntu18.04上安装QT5.15时遇到错误errorwhileloadingsharedlibraries:libbz2.so.1:cannotopensharedobjectfile:Nosuchfileordirectory。尝试通过安装libbz2-dev包未解决问题。使用ldd命令找出依赖库,发现缺少libbz2.so.1。通过查找系统中已存在的libbz2.so.1文件并将其复制到/lib64/目录下,成功解决安装问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决问题:error while loading shared libraries: libbz2.so.1: cannot open shared object file: No such file or directory

问题背景


作者在Ubuntu18.04系统上在线安装QT5.151,当运行./qt-unified-linux-x64-4.2.0-online.run的时候报错。
提示缺少动态库文件libbz2.so.1,如下所示:

./qt-unified-linux-x64-4.2.0-online.run 
./qt-unified-linux-x64-4.2.0-online.run: error while loading shared libraries: libbz2.so.1: cannot open shared object file: No such file or directory

按照网上的说法,尝试着安装软件包apt-get install libbz2-dev,但是问题没有解决。

sudo apt-get install libbz2-dev

解决方法

在网上查找资料,有博主对类似问题提出建议:从其他地方拷贝文件就能解决问题。
尝试以下方法,问题解决了。

首先,看看运行安装文件qt-unified-linux-x64-4.2.0-online.run,需要哪些依赖库。
运行ldd命令:

$ ldd ./qt-unified-linux-x64-4.2.0-online.run 
	linux-vdso.so.1 (0x00007ffe891f9000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00007fbc10c7a000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbc10a5d000)
	libbz2.so.1 => not found
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fbc10837000)
	libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fbc105f2000)
	libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fbc1033e000)
	libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fbc100f1000)
	libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007fbc0fed6000)
	libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fbc0fcd4000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fbc0faac000)
	libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fbc0f8a2000)
	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fbc0f690000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fbc0f358000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fbc0efda000)
	libxkbcommon-x11.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007fbc0edd2000)
	libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007fbc0eb93000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fbc0e98b000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbc0e76c000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fbc0e568000)
	libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007fbc0e2dc000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbc0df53000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbc0dd3b000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fbc0d985000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fbc10e7d000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fbc0d753000)
	libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fbc0d521000)
	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fbc0d29d000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fbc0d099000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fbc0ce93000)
	libxcb-xkb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007fbc0cc77000)
	libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fbc0ca46000)
	libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fbc0c790000)
	liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fbc0c574000)
	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fbc0c258000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fbc0c043000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fbc0be2e000)

可以发现,

  1. libbz2.so.1 => not found。缺少这个文件。
  2. 这些关联的依赖库文件是存放在/lib/x86_64-linux-gnu/或者/lib64/目录里的。那么,是不是可以将libbz2.so.1复制到这些目录中呢?

用find命令查找libbz2.so.1文件:

sudo find / -name 'libbz2*' -ls
  1186166     68 -rw-r--r--   1 root     root        66728 74  2019 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
  1186165      0 lrwxrwxrwx   1 root     root           15 1212 14:42 /lib/x86_64-linux-gnu/libbz2.so.1.0 -> libbz2.so.1.0.4
  1186164      0 lrwxrwxrwx   1 root     root           15 1212 14:42 /lib/x86_64-linux-gnu/libbz2.so.1 -> libbz2.so.1.0.4

可以发现,/lib/x86_64-linux-gnu/目录中有链接文件libbz2.so.1和动态库文件libbz2.so.1.0.4。
把这两个文件拷贝到/lib64/目录中,就可以运行安装文件./qt-unified-linux-x64-4.2.0-online.run了。

cd
sudo cp /lib/x86_64-linux-gnu/libbz2.so.1 /lib64/
sudo cp /lib/x86_64-linux-gnu/libbz2.so.1.0.4 /lib64/
./qt-unified-linux-x64-4.2.0-online.run

问题成功解决!


  1. Ubuntu18.04成功安装QT5.15的避坑步骤 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值