64位Ubuntu运行32位程序及下载依赖库

嗯干活的时候就是会遇到一些奇奇怪怪的问题。

运行32位程序

在普通的64位Ubuntu机器上直接运行32位的ELF程序会出现这样的问题:

yy@yy-DELL:~$ ./cjpeg 115.bmp
bash: ./cjpeg: 没有那个文件或目录

然而目录下明明有这个文件,这是因为64位系统中缺少32位程序运行时必要的库。在Ubuntu12.04之前可以通过安装库ia32-libs来解决此问题,在Ubuntu12.04之后的版本可以通过安装lib32ncurses5lib32z1来解决。

sudo apt-get install lib32ncurses5 lib32z1
下载安装指定依赖库

许多elf程序的运行会依赖一些共享库,如果没有安装会有如下提示:

yy@yy-DELL:~$ ./cjpeg 115.bmp 
./cjpeg: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory

此时就需要先安装共享库libjpeg.so.8,可以通过apt-file找到想要安装的共享库在哪个包里, 然后安装这个包。
首先安装apt-file:

sudo apt-get install apt-file
apt-file update

然后用apt-file的search选项来查找共享库:

yy@yy-DELL:~$ apt-file search libjpeg.so.8
libjpeg-turbo8: /usr/lib/x86_64-linux-gnu/libjpeg.so.8
libjpeg-turbo8: /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2

安装libjpeg-turbo8,注意对于32位的cjpeg程序,需要安装32位的libjpeg-turbo8:

sudo apt-get install libjpeg-turbo8:i386

其中i386指定了软件包为32位。安装完毕后再次运行cjpeg,可以看到cjpeg能够正常运行啦。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值