您的位置:首页 > 运维架构 > Linux

搭建交叉编译器arm-linux-gcc

2015-08-07 16:55 441 查看
解压

$ sudo tar xvzf arm-linux-gcc-4.4.3.tgz –C ./

注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,

在/usr/local/下建立 arm 文件夹

$ sudo mkdir /usr/local/arm

$ sudo chmod 777 arm

然后把 4.4.3 目录复制到 /usr/local下

sudo cp -r ./4.4.3 /usr/local/arm

修改环境变量,把交叉编译器的路径加入到PATH

网上很多修改环境变量的方法,很杂。有 redhat 上面的,federo(是这么写的)。下面一共三种方法

方法一:修改~/.bashrc文件(此文件只对当前用户适用)

在最后加上export PATH=$PATH:/usr/local/arm/4.4.3/bin

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

增加路径设置,在末尾添加如下,保存/etc/profile文件:

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

方法三:修改/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"

保存退出即可!

关于路径设置问题,可以 用终端逐步寻找,比如 在 终端下 cd /usr/local/ 用TAB键 一直找到 /bin

关于环境变量问题:

环境变量是什么?例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

如果上面不加入环境变量,要运行arm-linux-gcc这个程序,则每次都要把arm-linux-gcc的完整路径写出来。/usr/local/arm/4.4.3/bin arm-linux-gcc 文件名 -o 输出文件名

这样非常的麻烦,所以加到path里面,让电脑知道这个程序在哪里。

立即使新的环境变量生效,不用重启电脑

对应方法一:$ source /root/.bashrc

对应方法二:$ source /etc/profile

方法三立即生效

检查是否将路径加入到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。至此,交叉编译环境安装完成。

测试是否安装成功

$ arm-linux-gcc -v

显示arm-linux-gcc信息和版本,则成功!

编译Hello World程序,测试交叉工具链

写下下面的Hello World程序,保存为hello.c

#include

int main(int argc, char *argv[])

{

printf("Hello World!\n");

return 0;

}

执行下面的命令:

$ arm-linux-gcc hello.c -o hello

$ file hello

在hello的目录下,可以看到:

hello: ELF 32-bit LSB executable,ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

这样说明可以在ARM上运行,此时不能在pc上运行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: