arm-linux-gcc交叉工具链的安装和使用
1、安装arm-linux-gcc交叉工具链
[root@localhost Denny]# ls
arm-linux-gcc-4.3.2.tgz Desktop gcc kernel modules shell实验 smb.conf tftp安装包 wireshark软件包[root@localhost Denny]# tar zxvf arm-linux-gcc-4.3.2.tgz-C / // -C 参数指的是解压到根目录下面
[root@localhost /]# cd /usr/local/
[root@localhost local]# ls
arm bin etc games include lib libexec sbin share src
[root@localhost local]# cd arm/4.3.2/
arm-none-linux-gnueabi/ bin/ lib/ libexec/ share/
[root@localhost local]# cd arm/4.3.2/bin/ // 安装在 /usr/local/arm/4.3.2/bin/ 的“bin”目录下面
[root@localhost bin]#
[root@localhost bin]# /usr/local/arm/4.3.2/bin/arm-linux-gcc // arm-linux-gcc 使用方法1:跟上“全路径”
[[root@localhost bin]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@localhost bin]# export $PATH
bash: export: `/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin': not a valid identifier
[root@localhost bin]# vi /etc/pro
profile profile.d/ protocols
[root@localhost bin]# vi /etc/profile // arm-linux-gcc 使用方法2:添加路径到环境变量中去 ,在系统的时候就可以“任何地方”使用 arm-linux-gcc
[root@localhost bin]#
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /usr/local/arm/4.3.2/bin //环境变量添加的位置
fi
[root@localhost file]# cat hello.c
#include <stdio.h>
int main()
{
char *p="hello world!!";
printf("%s:",*p); // 错误:字符串的输出 printf("%s:",p); 不用加*p(字符串指针),和其他指针不同
return 0;
}
[root@localhost file]# vi hello.c
[root@localhost file]# gcc hello.c -o hello // x86编译方式
[root@localhost file]# ./hello // 在x86上能够运行
hello world!!:[root@localhost file]# arm-linux-gc
arm-linux-gcc arm-linux-gcc-4.3.2 arm-linux-gcov
[root@localhost file]# arm-linux-gcc hello.c -o hello1 // ARM编译方式
[root@localhost file]# ls
fork hello hello1 hello.c lib_file sys_file time_file
[root@localhost file]# ./hello1 // 在x86上不能够运行
bash: ./hello1: cannot execute binary file
[root@localhost file]#
2、arm-linux-gcc交叉编译工具的使用
今晚用了:arm-linux-objdump -S -D hello 反汇编指令时,遇到以下提示的错误:
arm-linux-objdump: Can't disassemble for architecture UNKNOWN!
现在还不知道是什么错误引起的,等着明天再解决了!!!!!!!