Arm64平台搭建交叉编译开发环境-以FT1500a cpu+Kylin4.0.2-sp2系统为例

本文介绍了在x86平台上,以VMware虚拟机搭载Debian9系统,搭建针对ARM64处理器(如FT1500a)的交叉编译环境。通过拷贝Kylin4.0.2-sp2的根文件系统,利用qemu模拟运行环境,避免依赖配置。详细讲述了虚拟机系统安装、根文件系统拷贝、交叉编译环境配置及镜像打包过程。

一、背景介绍

最开始接触ARM-Linux平台下开发时,用的还是ARM7/ARM9之类的处理器,32位的CPU,系统运行在norFlash+nandFlash组合的存储上。由于ARM7/ARM9的处理器性能偏弱,而且配套的存储空间一般也不够大,所以大多数情况下都采用交叉编译开发的方式,具体实现的方式就是在x86-Linux平台下,下载安装一个交叉编译器。Ubuntu系统下安装交叉编译器可以通过apt命令在线安装,安装方式如下:

# 针对32位的ARM平台
sudo apt-get install g++-arm-linux-gnueabihf
# 针对64位的ARM平台
sudo apt-get install g++-aarch64-linux-gnu

交叉编译器安装完成后,用相对应的交叉编译命令来编译程序。如下图所示,x86-Linux平台下,编译本平台的程序,用gcc命令编译,而编译arm平台下的程序,则用arm-linux-gnueabihf-gcc命令。
在这里插入图片描述
用file命令可以看出,编译生成的程序因编译器的不同而不同,在本机编译之后生成的文件是x86-64平台可以运行的,而用交叉编译器编译生成的则是ARM平台可以运行的。这里要注意的不同平台的文件需要在它对应的平台运行,如x86-64只能在x86-64架构CPU的系统上运行,而ARM则只能在arm架构CPU的系统上运行了,平台不匹配就会报错,如下图所示。
在这里插入图片描述
上面编译生成hello-arm文件的过程就是交叉编译,这样做的好处是可以利用x86架构CPU强大的性能和便利的开发环境,在编译大型软件库的时候,可以更快的进行编译。但这种方式也有着自己的缺点,比如需要手动配置环境变量、编译软件的时候要添加额外的参数、编译生成的程序没法直接在编译环境运行、调试环境不好搭建等,此外,随着软件库功能的逐渐丰富,它的依赖关系也越发复杂,直接用交叉编译工具的话,解决编译时依赖和运行时依赖也是一个比较麻烦的过程。
好在随着ARM处理器的不断发展,在64位指令集的引入和安卓系统不断对它性能要求的提高下,以及ARM-Linux生态环境的不断完善下,基于ARM64架构CPU的主机问世了,凭借着完善的系统运行库以及开发工具的支持,直接在ARM主机上进行开发(直接编译)也逐渐的方便了起来。
可即使这样,也难免有需要用到交叉编译环境的时候,毕竟基本还是用x86主机进行办公的,在ARM主机不太方便直接使用的情况下,用x86主机+虚拟机的形式搭建的交叉编译环境来编译调试程序也是个不错的选择。此外,qemu+chroot的方式提供了在交叉编译环境下解决库依赖问题的良好方案,那么接下来就讲下这种交叉编译环境搭建的过程。

二、虚拟机系统安装</

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值