出现这个问题要么是文件不存在,但是一般都不会犯这个错误,第二种是存在这个文件但是文件的类型和系统不一样,使用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