最近在使用Linux操作系统执行一个可执行文件,结果出现了No such file or directory的提示,表示很疑惑。
查看文件信息,可以看到文件是存在的,并且是可以执行的。
查阅资料后,原因是系统位数与该可执行文件需要的lib库位数不匹配。
用uname命令打印系统信息,发现系统是64位系统
用file命令查看文件信息,发现是一个32位可执行文件。
要想在64位系统上与运行32位程序,则需要安装32位lib库。
对于Ubuntu用户可以使用下面的命令安装。
sudo apt-get install ia32-libs
过程中有可能找不到需要的库,但是会有几个替代包,选择安装其中一个。例如:
However the following packages replace it:
lib32z1 lib32ncurses5 lib32bz2-1.0
再执行即可:sudo apt-get install lib32bz2-1.0
然后就可以正常运行之前的可执行文件了。
遇到这种问题其实还有可能是其他原因,例如文本的编码格式问题等,本文仅提出了一种解决方法,读者遇到相同问题要具体问题具体分析。