首先贴出出错提示信息:
jello@kali:/usr/local/arm/2.95.3/bin$ arm-linux-
arm-linux-addr2line arm-linux-gasp arm-linux-protoize
arm-linux-ar arm-linux-gcc arm-linux-ranlib
arm-linux-as arm-linux-gcj arm-linux-readelf
arm-linux-c++ arm-linux-ld arm-linux-size
arm-linux-c++filt arm-linux-nm arm-linux-strings
arm-linux-g++ arm-linux-objcopy arm-linux-strip
arm-linux-g77 arm-linux-objdump arm-linux-unprotoize
jello@kali:/usr/local/arm/2.95.3/bin$ arm-linux-gcc -v
bash: /usr/local/arm/2.95.3/bin/arm-linux-gcc: 没有那个文件或目录
1.确定当前系统的位宽:
通过使用uname -a可以得到当前linux系统的位宽,本人的kali2.0位宽信息如下:
jello@kali:/usr/local/arm/2.95.3/bin$ uname -a
Linux kali 4.0.0-kali1-amd64 #1 SMP Debian 4.0.4-1+kali2 (2015-06-03) x86_64 GNU/Linux
从以上关键字x86_64可得本人的系统是64bit的
2.确定交叉编译器的位宽:
2.1直接切换目录到交叉编译器的安装目录,本人的交叉编译器安装在/usr/local/arm/2.95.3/bin目录下,所以:
jello@kali:~$ cd /usr/local/arm/2.95.3/bin/
2.2使用file命令查看交叉编译器arm-linux-gcc的文件信息
jello@kali:/usr/local/arm/2.95.3/bin$ file arm-linux-gcc
本人的查询信息如下:
jello@kali:/usr/local/arm/2.95.3/bin$ file arm-linux-gcc
arm-linux-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.0.0, not stripped
由此即可知道交叉编译器之所以不能运行的原因是没有安装32位库的原因(在本人的kali2.0系统下,默认没有安装32位库)
3.解决方案:安装32位库
本人kali2.0安装32库的命令如下:
jello@kali:/usr/local/arm/2.95.3/bin$ sudo apt-get install libc6-i386