建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

erlin

发帖: 7粉丝: 1

发消息 + 关注

发表于2020年09月19日 17:33:41 521 3
直达本楼层的链接
楼主
显示全部楼层
[新手课堂] 搭建交叉编译环境

搭建开发环境,首先必须具备运行软件开发相关工具的平台,我们这里使用的是云服务器。其次,需要具备对应用进行代码转换的工具,本文以Linaro交叉编译工具为例。

编译:通常指利用编译程序从源语言编写的源程序产生目标程序的过程或者动作。一般包括本地编译和交叉编译两种

批注 2020-09-19 172709.png


为什么需要交叉编译主要从以下几个方面体现,

· Speed:目标平台的运行速度往往比主机慢得多,许多专用嵌入式硬件被设计为低成本和低功耗,没有太高的性能

· Capability:整个编译过程是非常消耗资源的,嵌入式系统往往没有足够的内存空间或磁盘空间

· Availability:即使目标平台资源很充足,可以本地编译,但是第一个在目标平台上运行的本地编译器总需要通过交叉编译获得

· Flexibility:一个完整的Linux编译环境需要很多支持包,交叉编译是我们不需要花时间将各种支持包移植到目标板上


编译环境的搭建,通常包含以下三个步骤:安装基础环境,安装配置编译器,验证交叉编译器

批注 2020-09-19 173004.png


首先,安装标准的C开发环境

ubuntu:apt-get install build-essential  centos:yum groupinstall Development Tools

在/usr/local下创建ARM-toolchain文件夹

mkdir /usr/local/ARM-toolchain

准备下载gcc

wget https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

解压

tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

后配置环境变量,修改配置文件,在配置文件最后一行加入PATH配置:

ubuntu:vim /etc/bash.bashrc  centos:vim /etc/profile

环境变量生效

ubuntu:source /etc/bash.bashrc  centos:source /etc/profile


交叉编译器验证:

编写测试例子hello.c进行输出验证

执行 aarch64-linux-gnu-gcc -o test hello.c进行交叉编译

在x86服务器上 ./test 此时会报错 -bash:./est:cannot execute binary file

将文件拷贝到ARM服务器上,./test 可正常显示输出内容




举报
分享

分享文章到朋友圈

分享文章到微博
发表于2020年09月19日 17:45:24
直达本楼层的链接
沙发
显示全部楼层

点赞 评论 引用 举报

重新来过

发帖: 168粉丝: 7

发消息 + 关注

发表于2020年09月23日 22:37:05
直达本楼层的链接
板凳
显示全部楼层

交叉编译大部分 情况会带来一定的性能损耗,有条件的情况下,建议还是在对应芯片服务器做编译

点赞 评论 引用 举报

Jack20

发帖: 67粉丝: 139

发消息 + 关注

发表于2021年01月14日 15:02:12
直达本楼层的链接
地板
显示全部楼层

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册