交叉编译
Cross-compilation进阶在 x86 电脑上编出能在机器人 ARM 主控上跑的程序。
指在一台机器(宿主机)上编译出另一种 CPU 架构或操作系统上运行的可执行文件。机器人上需要它的原因很实际:主控常是 Jetson、树莓派、瑞芯微这类 ARM 板子,算力内存都有限,直接在上面编译大工程(ROS 2 工作空间、OpenCV、推理引擎)要等很久甚至编不过,而开发机是 x86 的。做法是装目标架构的工具链(如 aarch64-linux-gnu-gcc)和目标系统的头文件与库,再配好 CMake 的 toolchain 文件;也常用 Docker 加 QEMU 模拟目标架构,绕开环境不一致。
例子在 x86 工作站上用 aarch64 工具链编好 ROS 2 节点和推理程序,拷到 Jetson Orin 上直接运行。
- 也叫
- 交叉构建
- 相关
- 嵌入式软件开发、CMake、英伟达 Jetson、Docker、端侧部署、固件
- 来源
- Cross compiler - Wikipedia
cmake-toolchains(7) - CMake Documentation