开发宿主机: ubuntu22.04虚拟机(PC)
目标平台: 地平线x3派/x3 Module , ubuntu22.04, ros2 humble
基于地平线x3开发板 5核 4G的内存的有限的资源,直接在目标机上编译虽然也可以,但耗时太长,而且还需开启swap交换区并关闭并行编译,否则分分钟内存不足。 交叉编译势在必行!!
由于之前交叉编译经验不足,导致各种问题不断,终经九九八十八难脱离苦海,特记录一下,避免重复踩坑
1. 准备目标机的 rootfs
在开发板中安装所有的依赖项, rootfs的导出过程: 【rootfs 的导出过程】
当依赖项增加或变化时, 可通过 scp 命令直接从目标机中复制到开发机器中
建议将 rootfs 放置在宿主机 /opt 目录下
下方为示例:
scp -r user@arm64-machine:/lib /path/to/rootfs/lib
scp -r user@arm64-machine:/usr/lib /path/to/rootfs/usr/lib
scp -r user@arm64-machine:/usr/include /path/to/rootfs/usr/include
或者
rsync -avz -e "ssh -p [port]"