您的位置:首页 > 其它

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

2018-04-02 20:42 447 查看
嗯干活的时候就是会遇到一些奇奇怪怪的问题。

运行32位程序

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

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


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

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能够正常运行啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: