首先貼出出錯提示信息: jello@kali:/usr/local/arm/2.95.3/bin$ arm-linux-arm-linux-addr2line arm-linux-gasp arm-linux-protoizearm-linux-ar arm-linux-gcc arm-linux- ...
首先貼出出錯提示信息:
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