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

Ubuntu16.04安装配置嵌入式交叉编译工具链arm-linux-gcc

2017-08-08 21:56 1241 查看
20170808 --马克斯


自己折腾了很久,参考了很多他人的方法,遇到各种问题,终于把这个嵌入式交叉编译环境给弄好了。
下面是我自己的操作步骤和遇到的一些问题及解决方法,互相学习……


一般情况下,购买开发板时开发商会提供能在该开发板上正常运行的交叉编译工具。

因为不同的体系结构操作系统甚至是不同版本的内核,都会用不同的交叉编译器。

1.下载arm-linux-gcc-4.4.3.tar.gz

首先下载arm-linux-gcc-4.4.3.tar.gz到任意的目录下,然后解压。

推荐个下载地址:http://download.csdn.net/download/zlyong0018/4646377

注意,arm-linux-gcc-4.4.3.tar.gz解压出来是在/opt/FriendlyARM/toolschain/4.4.3中的。

2.解压

tar zxvf arm-linux-gcc-4.4.3.tar.gz


3.在/usr/local/下建立 arm的文件夹,并修改属性

mkdir arm #新建名为arm的文件夹
chmod 777 arm


4.把 opt下的4.4.3 目录复制到 /usr/local/arm下

$ sudo cp -r /opt/Friendlyarm/4.4.3  /usr/local/  #路径应根据自己的文件路径而定


也可以直接鼠标右键移动文件到目标路径下

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

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

$ sudo gedit /etc/profile


在文件最后加上

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


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

$ sudo gedit /etc/bash.bashrc


在最后加上

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


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

$ sudo gedit /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"


保存退出即可。即在后面添加
:[$PATH]


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

方法一:source/etc/profile方法二: source /root/.bashrc

方法三:注销系统(若上面不成功建议注销系统一下)

(顺序对应上面修改环境变量的方法)

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

$ echo $PATH


显示的内容中若含有刚刚添加的路径,则说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。

8.测试是否安装成功

$ arm-linux-gcc -v             #应在有效的路径下测试
Using built-in specs.      #若安装成功,会显示以下内容
Target: arm-none-linux-gnueabi
……
gcc version 4.4.3 (ctng-1.6.1)


注意

如果你的系统是32位的,安装成功的话就会显示 arm-linux-
b3b1
gcc 的版本信息;但是如果系统是64位的就会报错 15: exec: /usr/local/arm/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found 这是因为64位的系统缺少32位的库,需要再安装32位系统兼容包。


在Ubuntu 13.10之前,可以通过安装 ia32-libs 来支持32位软件。但是,该版本之后,Ubuntu就去掉了。

不过可以通过安装替的32位兼容包来实现该功能。命令行中输入以下命令:

$ sudo apt-get install lib32z1
$ sudo apt-get install lib32ncurses5


OK,到这里就已经完成了嵌入式交叉编译工具的安装了,使用方法也很简单,就像使用gcc命令一样,

直接使用arm-linux-gcc

比如编写一个hello.c程序

$ vim hello.c                     #写完后保存、退出
$ arm-linux-gcc -o hello hello.c  #使用交叉编译工具编译hello.c,并生成目标文件hello
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息