您的位置:首页 > 其它

搭建嵌入式交叉编译环境

2016-08-06 10:53 225 查看

搭建嵌入式交叉编译环境

本文中所使用的Ubuntu 14.04.3,交叉编译器的安装一般需要涉及到多种软件,但这个过程一般比较复杂,现在很多嵌入式社区提供了测试通过的交叉编译器,本文中采用的是友善之臂的arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

1. 解压文件

tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /

注意: C后面有个空格,并且C是大写的(必须),它是英文单词“Change”的第一个字母,在此是改变目录的意思。执行该命令,将把arm-linux-gcc 安装到/opt/FriendlyARM/toolschain/4.5.1 目录。

另外自己在安装过程出现如下所示的报错:

gzip: stdin: unexpected end of file

tar: 归档文件中异常的 EOF

tar: 归档文件中异常的 EOF

tar: Error is not recoverable: exiting now

通过在网上搜索,原因一方面可能是解压格式是否选对或者是下载的压缩包破坏,自己的解压命令输入是无误的,压缩包也是光盘解压,连续从找了好几个版本的都是报这个错误,同学复制过来的也有问题,最初以为是自己的Ubuntu系统问题,但是对其他的压缩包就可以正常解压,后来思考可能是因为通过VMwareTools传输文件到虚拟机的过程中出现的文件损坏,果断换了WinSCP传送,最后果然可以正常解压了。

2. 建立目录复制文件

sudo mkdir /usr/local/arm

sudo cp -r /opt/FriendlyARM/toolschain/4.5.1/ /usr/local/arm

3. 配置环境变量

目前我们只是安装了交叉编译器,但使用时只能在当前目录下,因此需要配置环境变量,保证在其他路径下也能找到交叉编译器。

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

sudo gedit /etc/bash.bashrc

在最后加上 export PATH=$PATH:/usr/local/arm/4.5.1/bin (路径)(注意等号那边不要有空格)

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

sudo gedit /etc/profile

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

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

方法三:修改/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.5.1/bin”

4. 注册环境变量

为了使之前配置的环境变量生效,一种方法是注销系统重新进入,另外还可以采用其他方式注册环境变量,采用source指令

source /etc/bash.bashrc

source /etc/profile

方法三立即生效,不用注册。

5. 检测是否安装成功。

echo $PATH

显示如下信息,说明环境变量注册成功。

/usr/java/java-8-sun/bin:/usr/java/java-8-sun/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin:/opt/Sublime Text 2:/usr/local/arm/4.5.1/bin/

arm-linux-gcc

Using built-in specs.

COLLECT_GCC=arm-linux-gcc

COLLECT_LTO_WRAPPER=/usr/local/arm/4.5.1/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper

Target: arm-none-linux-gnueabi

Configured with: /work/toolchain/build/src/gcc-4.5.1/configure –build=i686-build_pc-linux-gnu –host=i686-build_pc-linux-gnu –target=arm-none-linux-gnueabi –prefix=/opt/FriendlyARM/toolschain/4.5.1 –with-sysroot=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root –enable-languages=c,c++ –disable-multilib –with-cpu=arm1176jzf-s –with-tune=arm1176jzf-s –with-fpu=vfp –with-float=softfp –with-pkgversion=ctng-1.8.1-FA –with-bugurl=http://www.arm9.net/ –disable-sjlj-exceptions –enable-__cxa_atexit –disable-libmudflap –with-host-libstdcxx=’-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm’ –with-gmp=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-mpfr=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-ppl=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-cloog=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-mpc=/work/toolchain/build/arm-none-linux-gnueabi/build/static –with-libelf=/work/toolchain/build/arm-none-linux-gnueabi/build/static –enable-threads=posix –with-local-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root –disable-nls –enable-symvers=gnu –enable-c99 –enable-long-long

Thread model: posix

gcc version 4.5.1 (ctng-1.8.1-FA)

输出如上结果,至此,交叉编译器安装成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: