CMake 跨平台编译

Apr 26, 2022 • 预计阅读时间 1 分钟

使用自定义的 toolchain 文件进行配置: CMAKE_TOOLCHAIN_FILE

cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake

跨平台编译需要指定 sysroot 的位置,编译器和链接器才能正确找到 includelib

sysroot 配置相关的有三个变量:

CMAKE_SYSROOT 除了传递 --sysroot 标志给编译器外,还会影响 find_* 命令的查找路径。

CMAKE_SYSROOT_COMPILECMAKE_SYSROOT_LINK 的作用和 CMAKE_SYSROOT 一样,但是只用于编译和链接而没有其他的副影响。

对于 Apple 平台:

用于指定 -isysroot 的路径,而且应该设置为 CACHE

指定在目标平台上使用的 API 版本,用于设置 ${platform}-version-min 的值,${platform} 的值由 CMAKE_OSX_SYSROOT 来确定,而且应该设置为 CACHE

指定生成的目标代码架构,接受数组类型,比如 x86_64;arm64

CMake 3.19.2 新增了一个用于 Apple Silicon 平台的变量:

Triple: Arch-SubArch-Vendor-OS-Environment-ObjectFormat

CMake
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

使用代理克隆 Chromium 源码

使用 Emscripten 编译 WASM 版本的 BoringSSL