目录
一、引言
二、正文
1.补充知识——交叉编译中的概念
1)工具链相关的计算机设备
2)target triple(目标三元组)
2.交叉编译工具链
1)aarch64-linux-gnu (ARM64)
版本选择
安装
验证
2)x86_64-linux-gnu
3.xmake交叉编译
2)使用x86_64-linux工具链
三、结语
写在前面
所有内容首发都将在公众号【飞翔的SA】,也请大家移步公众号阅读,您的支持是我坚持的动力。
原创不易,每一篇文章都是花费大量的时间编写而成,都是干货满满!如果各位觉得对自己有帮助,请动动您发财的小手,关注本账号, 我将持续为大家带来优质内容!
一、引言
日常工作中,交叉编译(cross-compilation)是经常遇到的话题,所谓交叉编译是指在软件的开发环境和运行环境不一致的条件下进行的编译活动,例如在windows操作系统下,编译生成linux应用程序;亦或是在x86架构计算机上编译 ARM架构软件。
本文介绍使用 “xmake + 交叉编译工具链”, 在64位x86架构windows系统下生成 arm64架构的linux应用程序的方法, 希望带大家了解 xmake在交叉编译场景下的应用。
文中使用的软件及版本:xmake3.0.7请预先安装!
二、正文
1.补充知识——交叉编译中的概念
本章内容在讲解 xmake 交叉编译的用法之前,必须先介绍一些交叉编译相关的概念,有助于我们理解接下来要讨论的话题。
1)工具链相关的计算机设备
|
设备 |
用途 |
英文 |
|
构建机 |
编译工具链组件的设备 |
build |
|
宿主机 |
运行工具链的设备 |
host |
|
目标机 |
运行工具链构建的输出物的设备 |
target |
工具链种类
|
条件 |
种类 |
|
构建机 = 宿主机 = 目标机 |
“原生型”native |
|
构建机 = 宿主机 ≠ 目标机 |
“交叉型”cross |
|
构建机 ≠ 宿主机 = 目标机 |
“交叉原生型” cross-native |
|
构建机 ≠ 宿主机 ≠ 目标机 |
“加拿大式” canadian “加拿大交叉” 这一名称的由来,是因为当初探讨这类工具链相关问题时,加拿大恰好有三个全国性政党 |
2)target triple(目标三元组)
“Target Triple”是编译器领域的一个核心概念,用于唯一标识一个编译目标环境。它通常由三个部分组成,格式为 <arch>-<vendor>-<os>或 <arch>-<vendor>-<os>-<abi> ,用于告诉编译







