⚙️ 交叉编译自动化方案
实战·30章
🧑🎓 风格 · 多彩目录
01
交叉编译概述
什么是交叉编译 · 为什么需要 · 与本地编译区别 · ARM/RISC-V/MIPS
➔
02
工具链基础
GCC组成 · 命名规则 · Linaro/Buildroot/Yocto获取
➔
03
环境搭建
Linux主机准备 · 依赖包 · 环境变量 · 验证 · Hello World
➔
04
Makefile基础
基本语法 · 变量 · 自动变量 · 模式规则 · 伪目标 · wildcard/patsubst
➔
05
CMake入门
基本语法 · project/add_executable · toolchain.cmake · 外部库链接
➔
06
Autotools体系
autoconf/automake/libtool · configure.ac · Makefile.am · 交叉配置
➔
07
Meson构建系统
Meson语法 · cross文件 · 依赖管理 · Ninja · 与CMake对比
➔
08
静态库与动态库
库的概念 · 交叉编译 .a / .so · 搜索路径 · 运行时链接
➔
09
第三方库移植
zlib · openssl · libpcap · 常见移植问题与解决
➔
10
文件系统与根文件系统
根目录结构 · BusyBox最小系统 · Buildroot完整系统
➔
11
Buildroot实战
下载配置 · 目标平台 · 软件包 · 编译输出 · 自定义包
➔
12
Yocto项目入门
Poky/BitBake/OpenEmbedded · 配置环境 · 最小镜像 · layer机制
➔
13
Yocto实战
编写recipe · 自定义layer · 内核配置 · 应用包 · SDK生成
➔
14
交叉编译调试
GDB交叉调试 · 调试信息 · gdbserver · 断点单步
➔
15
性能分析工具
perf · gprof · Valgrind 交叉编译与使用 · 瓶颈定位
➔
16
自动化构建脚本
Shell脚本 · 参数化构建 · 错误处理 · 并行编译 -j
➔
17
CI/CD集成
Jenkins · GitLab CI/CD · Docker容器化 · 自动化测试
➔
18
Docker交叉编译环境
Dockerfile · 多阶段构建 · 挂载源码 · 环境一致性
➔
19
多架构支持
ARM64 + x86_64 · 条件编译 · 架构优化 · 多架构镜像
➔
20
内核模块交叉编译
内核源码 · menuconfig · 编译模块 · 加载卸载 · 调试
➔
21
设备树基础
DT概念 · dts/dtsi编写 · dtc编译 · 与内核驱动关系
➔
22
U-Boot交叉编译
U-Boot简介 · 获取源码 · 配置目标板 · 烧录启动
➔
23
裸机程序开发
裸机 vs OS · 链接脚本 .lds · startup.S · LED点灯
➔
24
RTOS交叉编译
FreeRTOS移植 · 任务创建/调度 · 中断管理 · 内存管理
➔
25
Python交叉编译
Python源码交叉编译 · C扩展 · 嵌入式优化 · MicroPython
➔
26
Node.js交叉编译
Node.js源码交叉编译 · npm · 嵌入式应用 · 性能内存
➔
27
Qt交叉编译
Qt源码交叉编译 · qmake/meson · 触摸屏 · 显示适配
➔
28
OpenCV交叉编译
OpenCV源码 · CMake选项 · NEON/SSE优化 · 图像移植
➔
29
安全与签名
代码签名 · 安全启动 · 固件加密 · 防篡改 · 漏洞防护
➔
30
综合项目实战
需求分析 · 平台工具链 · 根文件系统 · 应用移植 · 固件生成
➔