1. 为什么需要交叉编译?
第一次把OpenEuler或HopeEdge OS刷进树莓派时,很多人都会遇到一个尴尬的问题:系统里居然没有apt-get、yum这些常用的包管理工具!我当初也踩过这个坑,折腾了半天发现只有rpm能用。更麻烦的是,就算找到了dnf的rpm包,安装时还会遇到一大堆依赖问题,简直让人抓狂。
这种情况在嵌入式开发中很常见。为了节省资源,很多轻量级系统都会精简掉编译工具和包管理器。这时候交叉编译就成了救命稻草——它让我们能在性能更强的开发机上编译程序,再把成品放到目标设备运行。就像在厨房做好饭菜直接端上桌,省去了在餐桌上现做的麻烦。
2. 搭建交叉编译环境
2.1 选择合适的工具链
工欲善其事,必先利其器。对于OpenEuler/HopeEdge这类基于ARM架构的系统,Linaro提供的GCC交叉编译工具链是个不错的选择。我推荐使用aarch64-linux-gnu这个版本,它完美适配树莓派4B等64位ARM设备。
获取工具链很简单:
wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
下载完成后记得验证下完整性:
sha256sum gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
2.2 环境配置技巧
解压工具链建议单独创建目录:
mkdir -p ~/cross_compile
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz -C


1745

被折叠的 条评论
为什么被折叠?



