gpt4 book ai didi

visual-studio - Cmake:特定子项目只有一个配置,所有其他项目的 Debug&Release

转载 作者:行者123 更新时间:2023-12-03 15:51:30 32 4
gpt4 key购买 nike

在我的根文件夹的 CMakeLists.txt 中,我将可能的配置定义为 Debug 和 Release:

if(NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_CONFIGURATION_TYPES Debug Release)
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Reset the configurations to what we need" FORCE)
endif()

这适用于解决方案的大多数子项目。但是,我有两个不区分 Debug 和 Release 的子项目(它们做一些非 C++ 的东西,比如 Doxygen 或 Typescript 编译)。在这些子项目的 CmakeLists.txt 中我刚刚写了
project(typescript_compilation)

# Do not separate debug and release builds
set(CMAKE_CONFIGURATION_TYPES Release)

如果首先打开发布配置,然后在 IDE (Visual Studio) 中打开调试配置,这将起作用。然后我可以在 Release 和 Debug 之间切换,项目可用并且只构建一次。

但是,如果在Cmake生成后先打开Debug配置,子项目无法加载,报错

typescript_compilation.vcxproj : error: Cannot load project: project does not contain requested configuration Debug|x64. Please verify that the .sln file is valid and uses only existing project configurations.



所以我的方式似乎是实现这一目标的错误方式,并且只有在首先打开并构建了 Release模式时, Debug模式才有效。只构建一次项目的最佳 Cmake 方法是什么?

最佳答案

好像是你的 IDE 找不到 调试 这些子项目的配置。
我想,像你对根配置所做的那样设置配置类型应该可以解决这个问题:

set(CMAKE_CONFIGURATION_TYPES Debug Release)

关于visual-studio - Cmake:特定子项目只有一个配置,所有其他项目的 Debug&Release,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61918705/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com