如何将 VSCode 与 CMake 结合使用,并拥有不同的目标,每个目标具有不同的架构和工具链?

问题描述 投票:0回答:1

我正在使用 Visual Studio Code 和 CMake 开发一个项目,其中我正在为不同平台编译/交叉编译不同的目标。目前该项目拥有三个平台,每个平台都使用不同的工具链。为了便于解释,我将简化平台和工具链的名称:

  • Platform1 使用
    platform1.cmake
    中定义的工具链并从
    platform1/CMakeLists.txt
  • 构建
  • Platform2_native 使用
    platform2.cmake
    中定义的工具链并从
    platform2/CMakeLists.txt
  • 构建
  • Platform2_emulated 使用系统的本机工具链,并且也是从
    platform2/CMakeLists.txt
  • 构建的

如果我使用命令行单独配置和构建其中每一个并手动指定正确的工具链,那么它们都会正确构建。但我真正想做的是能够在 Visual Studio Code 中进行构建,并指定我正在构建的目标。

但是,我对 CMake 还很陌生,当我试图弄清楚如何设置它时,我遇到了困难。根据我所读到的内容,CMake 假设所有目标都将使用相同的工具链,并且看起来 Visual Studio Code 一次只能与一个 CMake 项目配合使用。

有没有办法在单个 Visual Studio Code 工作区中执行此操作?

c++ visual-studio-code cmake cross-compiling
1个回答
0
投票

根据我所读到的内容,CMake 假设所有目标都将使用相同的工具链

是的。同一 CMake 配置的构建系统中的所有目标。像ExternalProject 这样的边界适用。请参阅https://stackoverflow.com/a/76996558/11107541

Visual Studio Code 一次仅适用于一个 CMake 项目

CMake 工具一次适用于一个顶级项目。

有没有办法在单个 Visual Studio Code 工作区中执行此操作?

预设会有所帮助。在这种情况下,我将为这三件事中的每一个定义一个 configurepreset(请参阅

architecture
toolset
toolchainFile
成员)。如果没有 Platform2 本机与仿真分离,那么您也可以将其设置为多个源目录(请参阅
cmake.sourceDirectory
设置https://stackoverflow.com/a/73698237/11107541 https://stackoverflow.com/a/77657422/11107541)。

© www.soinside.com 2019 - 2024. All rights reserved.