Ubuntu查看系统位数+可执行文件不可执行的位数问题解决方案
**ubuntu查看系统位数
打开终端,键入uname -m
表明你的系统是64位系统,
x86就是32位,x64就是64位,其实,X64本质上也是X86的一个版本,确切来说,应该叫x86_64
**查看可执行文件位数
打开你所要查看文件所在目录下的终端,键入 file 文件名
会得到如上结果 , x86_64就说明该可执行文件是64位的.
通常情况下,31位的系统是无法执行64位可执行文件的,
64位系统要想执行32位的可执行文件,需要安装库,命令是:
sudo dpkg --add-architecture i386
sudo apt install libc6:i386
**遇到的问题
我在进行完上述步骤之后,发现需要运行的可执行文件依然无法运行,
依然提示如下错误:
把百度的方法都尝试一遍还是没有找到解决方法
于是,我在桌面上新建了一个脚本,用g++ xxx.cpp -o xxx方法,生成可执行文件,查看文件信息
与待解决问题的这张对比,
发现只有一处差别,SYSV的可以运行,GNU/Linux的不可执行,
原因是这两个文件有着不同的ELF格式,这可能导致链接器无法“找到”库.
ELF格式的不同与文件内容有关.
最后发现是仿真前面的编译环节没有做好,如果你跟我一样把前面的环节都做好了,问题还没有解决,不妨也试着看看自己是否也是前面的某个环节的问题吧!