在交叉编译中,通常有两种方法:
-
Explicit sysroot(完全隔离):
-
你用 debootstrap 或 QEMU chroot 做一个干净 aarch64 文件系统
-
target Python dev 包安装在
/usr/include/usr/lib下,这些路径在 sysroot 里
-
-
Multiarch(Ubuntu 特有方式):
-
不用额外 sysroot
-
ARM 包安装到
/usr/include/aarch64-linux-gnu/usr/lib/aarch64-linux-gnu -
CMake 需要通过 toolchain 显式告诉编译器去哪里找
-
你现在用的 multiarch 模式,就是第二种方法,所以安装的 target Python dev 包 不会在 sysroot,而是在 multiarch 的系统路径里。