我正在使用 Visual Studio Code 和 CMake 开发一个项目,其中我正在为不同平台编译/交叉编译不同的目标。目前该项目拥有三个平台,每个平台都使用不同的工具链。为了便于解释,我将简化平台和工具链的名称:
platform1.cmake
中定义的工具链并从 platform1/CMakeLists.txt
platform2.cmake
中定义的工具链并从 platform2/CMakeLists.txt
platform2/CMakeLists.txt
如果我使用命令行单独配置和构建其中每一个并手动指定正确的工具链,那么它们都会正确构建。但我真正想做的是能够在 Visual Studio Code 中进行构建,并指定我正在构建的目标。
但是,我对 CMake 还很陌生,当我试图弄清楚如何设置它时,我遇到了困难。根据我所读到的内容,CMake 假设所有目标都将使用相同的工具链,并且看起来 Visual Studio Code 一次只能与一个 CMake 项目配合使用。
有没有办法在单个 Visual Studio Code 工作区中执行此操作?
根据我所读到的内容,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)。