交叉编译环境搭建

在嵌入式Linux开发中,无论是应用还是驱动开发,一般都是采用交叉编译的方式,对arm平台进行开发。在很多时候想要平台的可以运行文件都是通过linux编译好后移植到相应的平台上实现再次开发的,但是通过交叉编译环境生成的文件在linux。这样情况下就想要用到相应的交叉编译工具链,来完成程序的编译,生成相应的可执行文件,以适配目标平台的系统架构。

一、获取交叉编译的工具包

我这里使用的是arm-linux-gnueabihf-gcc-6.5.0 的版本来编译u_boot

获取方法 1、官网下载:https://releases.linaro.org/components/toolchain/binaries

下载时注意arm,armel是小端字节序编译器,armeb是大端字节序编译器

2、板卡自带

3、找老大、组长、老师要相应的版本文件

二、将相应的文件移动到linux文件系统中解压(不要使用windos的解压工具解压,不适配)

tar -xvf gcc编译工具链压缩包名称

三、解压完成后可以更改为短一点的名字

mv 编译工具文件名称 版本名称

cd 6.5.0

lib一般放库文件,也就是后缀.lib的

include 一般包含头文件目录

bin表示binary目录,一般都是dll,exe等

然后 进入bin文件 cd bin

获取当前文件的绝对路径

pwd

四、设置全局变量

sudo vim .bashrc

在最后面添加:

PATH=/home/tools/cross-compiler/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/bin:$PATH

中间的地址是上面获取的绝对地址,看情况更改

重新启动环境变量配置:

source .bashrc

最后通过

arm-linux-gnueabihf-gcc -v

然后在最下面就可以看见当前安装的交叉编译版本了。

ps:[P&S]交叉编译工具链配置好环境变量后依然找不到文件

当你的环境是新的时候设置了相关的环境变量还是没有版本号的时候

输入 arm-linux-gcc -v,

提示找不到

bash: /home/tools/cross-compiler/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/bin/arm-linux-g++: No such file or directory

这样的错误

分析:是你当前的系统没有安装32位程序库

解决方法:

sudo apt-get install lsb-core

如果安装了这个还是有问题,还是环境问题再次安装其他的支持库

sudo apt-get install lib32ncurses5

sudo apt-get install lib32z1

最后再次使用:arm-linux-gnueabihf-gcc -v

一般就没啥问题了。

如果还有问题出现在:apt-get install lsb-core这一步,就是你源的问题了,直接百度解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orange....

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值