You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode中通过CMake配置多架构、多工具链的不同编译目标?

在单个VSCode工作区实现多平台CMake构建方案

完全可以在单个VSCode工作区搞定多工具链、多目标的CMake构建,核心是利用CMake官方的Presets机制,配合VSCode的CMake Tools扩展实现快速切换,具体步骤如下:

1. 用CMake Presets统一管理所有平台配置

在项目根目录创建CMakePresets.json文件,把三个平台的工具链、构建目录、编译参数都定义进去,这是最规范的多配置管理方式:

{
  "version": 3,
  "configurePresets": [
    {
      "name": "platform1",
      "binaryDir": "${sourceDir}/build/platform1",
      "toolchainFile": "${sourceDir}/platform1.cmake",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
      }
    },
    {
      "name": "platform2_native",
      "binaryDir": "${sourceDir}/build/platform2_native",
      "toolchainFile": "${sourceDir}/platform2.cmake",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
      }
    },
    {
      "name": "platform2_emulated",
      "binaryDir": "${sourceDir}/build/platform2_emulated",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "platform1",
      "configurePreset": "platform1"
    },
    {
      "name": "platform2_native",
      "configurePreset": "platform2_native"
    },
    {
      "name": "platform2_emulated",
      "configurePreset": "platform2_emulated"
    }
  ]
}

2. 适配不同子目录的CMakeLists.txt

你的项目里Platform1和Platform2各有独立的CMakeLists.txt,可以在根目录加一个顶层CMakeLists.txt,根据当前加载的预设自动引入对应子目录:

cmake_minimum_required(VERSION 3.20)
project(MultiPlatformBuild)

# 根据预设名称判断要构建的平台
if(CMAKE_CURRENT_LIST_DIR STREQUAL "${CMAKE_SOURCE_DIR}/platform1")
  add_subdirectory(platform1)
else()
  add_subdirectory(platform2)
endif()

或者更直接的方式:在每个预设的configurePresets里添加sourceDir字段,指定对应子目录的路径,比如给platform1的预设加"sourceDir": "${sourceDir}/platform1",这样配置时直接加载该子目录的CMakeLists。

3. 在VSCode里快速切换构建目标

配置好Presets后,操作就很简单了:

  • 打开命令面板(Ctrl+Shift+P),输入CMake: Select Configure Preset,选对应的平台完成首次配置
  • 之后直接点击VSCode底部状态栏的「CMake Preset」或「Build Preset」,就能快速切换要构建的目标,点击构建按钮即可完成编译

每个平台的构建产物会存放在各自的build/xxx目录下,不会互相干扰,完全满足你在单个工作区处理多平台编译的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:56:07