Ubuntu amd64系统下运行程序出现“No such file or directory”

本文介绍了解决在64位Ubuntu系统中运行32位程序遇到的问题及解决方案,包括安装必要的32位库文件,如lib32ncurses5、lib32z1和libstdc++6等。

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

出现这个问题要么是文件不存在,但是一般都不会犯这个错误,第二种是存在这个文件但是文件的类型和系统不一样,使用file命令查看文件的类型,例如:


root@ubuntu:/home/tq/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin# ./arm-linux-gnueabihf-gcc-4.8.2 
bash: ./arm-linux-gnueabihf-gcc-4.8.2: No such file or directory
root@ubuntu:/home/tq/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin# file arm-linux-gnueabihf-gcc-4.8.2
arm-linux-gnueabihf-gcc-4.8.2: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.15, stripped
root@ubuntu:/home/tq/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin# 


可以看到文件的类型是ELF 32-bit的可执行文件,但是在64位的系统上不能运行32位的程序,需要安装32位的运行库。

Ubuntu16.04版本已不支持ia32-libs的软件包,而是使用了lib32ncurses5、lib32z1软件包做为替代,所以在Ubuntu16.04版本当中应该安装执行:

apt-get install lib32ncurses5

apt-get install lib32z1


安装完了之后编译linux源码报错:

/home/tq/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory


可以看出缺少libstdc++.so.6链接库安装下面库:

$sudo apt-get install libstdc++6 
$sudo apt-get install lib32stdc++6





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值