交叉编译器arm-linux-gcc的安装

1.下载交叉编译器 arm-linux-gcc4.4.3

2.解压文件 sudo tar -xvzf arm-linux-gcc-4.4.3.tgz –C /

ARMfriend版本的,解压后的目录是/opt/Friendlyarm/toolschain/4.4.3

3在/usr/local下建立目录arm

sudo mkdir /usr/local/arm

4.复制文件

sudo cp -r /opt/FriendlyARM/toolschain/4.4.3 /usr/local/arm。

5.添加交叉编译器环境变量

方法(1):修改/etc/bash.bashrc文件 —(此文件只对当前用户适用)

sudo vi /etc/bash.bashrc

在最后加上 export PATH= P A T H : / u s r / a r m / 4.4.3 / b i n ( 路 径 ) ( 注 意 等 号 那 边 不 要 有 空 格 ) 这 里 好 多 博 客 都 写 的 e x p o r t P A T H = PATH:/usr/arm/4.4.3/bin (路径)(注意等号那边不要有空格)这里好多博客都写的 export PATH= PATH:/usr/arm/4.4.3/bin()()exportPATH=PATH:/opt/FriendlyARM/toolschain/4.4.3/bin,其实没必要,因为第四部你已经吧文件复制过去了,可以直接写成/usr/arm/4.4.3/bin ,根目录下的opt文件都可以删掉的。

方法(2):修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用)

sudo vi /etc/profile

增加路径设置,在末尾添加如下:

export PATH=$PATH:/usr/local/arm/4.4.3/bin

方法(3):修改/etc/environment文件

sudo vi /etc/environment

原文件应为

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“

将其改为

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin"

6.注册环境变量

立即使新的环境变量生效,不用重启电脑,对应步骤5也有3种方法

方法(1):source /root/.bashrc

或者

./etc/bash.bashrc

方法(2):source /etc/profile

方法(3):立即生效

7.检查是否将路径加入到PATH

echo $PATH

显示内容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。

8.测试是否安装成功

在终端输入 arm-linux-gcc -v,可以查看arm-linux-gcc 的版本。到这里请注意,如果你的系统是32位的,就已经成功,会显示arm-linux-gcc 的版本信息,但是如果你的系统是64位的那就会报错 15: exec: /usr/local/arm/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found。这是因为64位的系统缺少32位的库,需要在安装。但是ubuntu12.04以后的版本就没有32位的库,所以执行 sudo apt-get install libc6:i386,然后执行apt-get install ia32-libs,这是他会提示不可用,但是会给出几个替代的,你选一个安装就可以。安装完再执行arm-linux-gcc -v,就可以看到版本信息,至此,环境搭建完毕。

arm linux gcc常用参数介绍
0. arm-linux-gcc -o example example.c

不加-c、-S、-E参数,编译器将执行预处理、编译、汇编、连接操作直接生成可执行代码。

-o参数用于指定输出的文件,输出文件名为example,如果不指定输出文件,则默认输出a.out

  1. arm-linux-gcc -c -o example.o example.c

-c参数将对源程序example.c进行预处理、编译、汇编操作,生成example.o文件

去掉指定输出选项"-o example.o"自动输出为example.o,所以说在这里-o加不加都可以

2.arm-linux-gcc -S -o example.s example.c

-S参数将对源程序example.c进行预处理、编译,生成example.s文件

-o选项同上

3.arm-linux-gcc -E -o example.i example.c

-E参数将对源程序example.c进行预处理,生成example.i文件(不同版本不一样,有的将预处理后的内容打印到屏幕上)

就是将#include,#define等进行文件插入及宏扩展等操作。

4.arm-linux-gcc -v -o example example.c

加上-v参数,显示编译时的详细信息,编译器的版本,编译过程等。

5.arm-linux-gcc -g -o example example.c

-g选项,加入GDB能够使用的调试信息,使用GDB调试时比较方便。

6.arm-linux-gcc -Wall -o example example.c

-Wall选项打开了所有需要注意的警告信息,像在声明之前就使用的函数,声明后却没有使用的变量等。

7.arm-linux-gcc -Ox -o example example.c

-Ox使用优化选项,X的值为空、0、1、2、3

0为不优化,优化的目的是减少代码空间和提高执行效率等,但相应的编译过程时间将较长并占用较大的内存空间。

8.arm-linux-gcc -I /home/include -o example example.c

-Idirname: 将dirname所指出的目录加入到程序头文件目录列表中。如果在预设系统及当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。

9.arm-linux-gcc -L /home/lib -o example example.c

-Ldirname:将dirname所指出的目录加入到库文件的目录列表中。在默认状态下,连接程序ld在系统的预设路径中(如/usr/lib)寻找所需要的库文件,这个选项告诉连接程序,首先到-L指定的目录中去寻找,然后再到系统预设路径中寻找。

10.arm-linux-gcc –static -o libexample.a example.c

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值