You need to enable JavaScript to run this app. 查询CMAKE_SYSTEM_NAME与CMAKE_SYSTEM_PROCESSOR可选取值及CMake官方文档
优惠活动
大模型
产品
解决方案
定价
更多

查询CMAKE_SYSTEM_NAME与CMAKE_SYSTEM_PROCESSOR可选取值及CMake官方文档

CMake交叉编译核心变量取值参考

CMAKE_SYSTEM_NAME取值规则

这个变量的核心作用是触发CMake加载对应目标系统的内置平台规则,不存在官方强制穷举的固定合法列表,已被CMake广泛适配的常见取值包括:

  • 通用操作系统类:
    • Linux:所有类Linux内核的目标系统
    • Windows:所有Windows桌面/服务端目标系统,不存在单独的特殊命名
    • Darwin:macOS、iOS等苹果生态目标系统
    • FreeBSD、NetBSD:对应BSD衍生系统
    • Android:安卓嵌入式目标系统
    • Generic:无操作系统的裸机嵌入式目标
  • 工业级嵌入式系统:QNX、VxWorks、ThreadX
    *取值本质是匹配CMake内置的平台规则模块,如果你自行编写了对应系统的规则文件,自定义的系统名称也可以被正常识别使用。

CMAKE_SYSTEM_PROCESSOR取值规则

这个变量的核心作用是标识目标硬件架构,同样没有强制的取值白名单,常见的主流架构取值包括:

  • x86生态:
    • x86:32位x86架构
    • x86_64、AMD64:64位x86架构,两种命名在不同平台下均被支持
  • ARM生态:
    • arm:32位ARM架构,可进一步细化为armv6、armv7-a等带版本后缀的取值
    • arm64、aarch64:64位ARM架构,两种命名均被当前CMake版本兼容
      *部分旧版本CMake会自动兼容取值的大小写、命名差异,不会因为大小写不同直接抛出识别错误。

关于官方文档的说明

CMake官方文档仅明确了两个变量的核心作用,没有维护固定的全量取值列表章节,本质是因为这两个变量的设计逻辑面向可扩展的平台模块体系,而非封闭的固定取值集合:只要对应平台、架构的适配规则存在(不管是CMake内置的还是用户自行编写的),合法取值的范围就会同步扩展,不存在一劳永逸的穷举列表。

实际使用提示

对于GCC、Clang及对应ARM交叉工具链的配置场景,取值不需要严格对照所谓的官方固定列表,只要和工具链实际的目标三元组匹配即可。例如aarch64-linux-gnu交叉工具链,对应的配置就是将CMAKE_SYSTEM_NAME设为Linux、CMAKE_SYSTEM_PROCESSOR设为aarch64,即可正常完成交叉编译配置。

内容的提问来源于stack exchange,提问作者user654789384

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 22:36:04