news 2026/6/10 13:06:16

Linux交叉编译工具链

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux交叉编译工具链

Linux交叉编译工具链

前言

Linux交叉编译工具链是在一种计算机架构(如x86个人电脑)上,编译生成能在另一种不同架构(如ARM处理器)上运行代码的整套开发工具。

1. 交叉编译工具链的命名规则

1.1 命名规则

arch[-vendor][-os][-abi]

1.2 详细说明

arch (架构): 目标处理器架构,如 arm, aarch64,mips, riscv, x86_64。
vendor (提供商/厂商): 工具链提供商名称。unknown或none表示无厂商
os(操作系统): 目标操作系统,如linux。none或者不填表示无操作系统(裸机)
abi(应用二进制接口): 指定库函数和映像的规范
- eabi: 无操作系统(裸机)的嵌入式 ABI
- gnu: 使用 glibc 库 + oabi (old abi, 旧版 ABI)
- gnueabi: 使用 glibc 库 + eabi (embedded abi, 嵌入式 ABI)
- gnueabihf: 使用 glibc 库 + eabi (embedded abi, 嵌入式 ABI),支持硬件浮点 (hard float)
- musl: 使用 musl 库 + oabi
- musleabi: 使用 musl 库 + eabi
- musleabihf: 使用 musl 库 + eabi,支持硬件浮点

1.3 示例

arm-none-eabi:无操作系统arm编译器,不支持与操作系统有关的函数,如fork
aarch64-none-linux-gnu:Linux系统aarch64编译器

2. 交叉编译工具链的组成

  • 编译器:gcc/g++交叉编译器将源代码编译成目标文件
  • Binutils:提供二进制文件处理的基础工具集,包括链接器ld,汇编器as,静态库打包工具ar,目标文件查看工具readelf,去除符号strip等
  • C标准库:标准C函数(如malloc printf)的实现,如C标准库函数malloc通过封装系统调用brk和mmap,来更便捷的实现用户态内存分配
  • sysroot系统根目录:sysroot是目标平台文件系统结构的目录,包含了目标设备所需的头文件、库文件、配置文件等开发资源和运行时依赖
名称描述典型应用场景
GNU C Library (glibc)Linux系统的标准C库。功能最完整、遵循标准最严格、对POSIX和Linux特有API支持最好。但体积最大,动态链接依赖较多标准Linux桌面/服务器
musl轻量、快速、优雅的C库。专注于静态链接,体积极小,遵循标准严格。静态链接是其最大优势,但某些非标准/历史兼容API支持不如glibc对体积敏感的嵌入式Linux、容器基础镜像、静态编译发行版
uClibc-ng为资源极度受限的嵌入式系统设计。高度可配置,可裁剪到非常小。更注重“能用”而非严格遵循标准,性能与兼容性权衡较多老式路由器、IoT设备、内存/存储极小的Linux系统
newlib专为嵌入式“裸机”系统设计。不依赖操作系统,需要用户自行实现底层系统调用接口。非常轻量,是许多RTOS的默认C库Cortex-M等微控制器程序、无操作系统的嵌入式系统
Bionic由Google为Android开发。源自BSD C库,但经过大量修改。不完整支持POSIX,添加了Android特有API仅用于Android系统及应用开发
BSD libc如 FreeBSD/OpenBSD 的libc。是GNU/Linux系统外的一个重要分支,代码和质量很高BSD系列操作系统
Microsoft C run-time libraryWindows操作系统的C运行库。实现了C标准库和Windows特有的运行时支持。仅用于Windows平台原生程序开发

3. 制作交叉编译工具链

3.1 crosstool-NG

crosstool-NG

专门用于构建交叉编译工具链的自动化配置工具

3.2 Buildroot

Buildroot官网

Buildroot是一个嵌入式Linux构建系统,可以构建整个嵌入式系统,包括交叉编译器工具链cross-compilation toolchain、根文件系统rootfs、Linux内核和引导加载程序bootloader等

3.3 手动构建

下载源码手动构建,使用kernel+gcc+glibc+binutils的源码包编译。


Reference:

  1. Binutils - GNU Project - Free Software Foundation
  2. The GNU C Library - GNU Project - Free Software Foundation
  3. Cross-compilation toolchains for Linux - Home
  4. musl libc toolchains | static cross/native toolchains
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:38:19

基于PyTorch的腾讯HunyuanOCR界面推理部署步骤详解

基于PyTorch的腾讯HunyuanOCR界面推理部署步骤详解 在智能文档处理需求爆发式增长的今天,企业对OCR系统的期待早已超越“把图片变文字”的初级阶段。我们看到越来越多的应用场景——从银行票据自动录入、跨境电商多语言商品识别,到视频平台实时字幕提取—…

作者头像 李华
网站建设 2026/6/10 11:40:29

华为HCIP/HCSE、H3CSE通关经验浅谈

分享一波近期学员的战绩,共同探讨下高级认证备考策略。 华为HCIP-Datacom: 884分,路由交换基础扎实。 华为HCSE-Presales(金融/传输/企业): 均分850左右,对行业解决方案理解深刻。 新华三GB0-392 (H3CSE): 840分&#…

作者头像 李华
网站建设 2026/6/6 8:21:58

奢侈品真假辨别系统:HunyuanOCR比对品牌LOGO与序列号信息

奢侈品真假辨别系统:HunyuanOCR比对品牌LOGO与序列号信息 在二手奢侈品市场交易额突破千亿元的今天,一个看似普通的LV手袋内标照片,可能隐藏着数万元的真伪博弈。买家上传一张模糊的标签图,平台需要在3秒内判断这是否是高仿A货——…

作者头像 李华
网站建设 2026/6/7 22:47:55

AI竞赛题目灵感来源:设计‘复杂文档识别’任务使用HunyuanOCR评分

设计“复杂文档识别”任务使用HunyuanOCR评分 在金融、政务和跨境电商的日常运营中,企业每天要处理成千上万张扫描发票、合同、身份证件等非结构化文档。这些文件格式多样、语言混杂、版式复杂,传统OCR系统往往力不从心——检测不准、识别错乱、字段抽取…

作者头像 李华
网站建设 2026/6/10 7:38:25

GPU算力变现新路径:部署HunyuanOCR提供按Token计费的OCR服务

GPU算力变现新路径:部署HunyuanOCR提供按Token计费的OCR服务 在AI基础设施日益普及的今天,拥有高性能GPU却苦于利用率不足的问题,正困扰着大量中小企业、独立开发者甚至高校实验室。一块NVIDIA RTX 4090D动辄上万元,若仅用于训练或…

作者头像 李华
网站建设 2026/6/9 23:11:17

HunyuanOCR支持Airtable自动化吗?NoCode场景应用探索

HunyuanOCR与Airtable自动化:NoCode场景下的图像数据智能流转 在跨境电商公司的日常运营中,财务团队每周都要处理来自全球各地的上百张纸质发票——中文、英文、泰文混杂,版式各异。过去,这项工作依赖人工逐张录入到Airtable系统中…

作者头像 李华