Phi*_*Lab 10 cmake visual-studio
在我的根文件夹的 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()
Run Code Online (Sandbox Code Playgroud)
这适用于解决方案的大多数子项目。但是,我有两个不区分 Debug 和 Release 的子项目(它们做一些非 C++ 的东西,比如 Doxygen 或 Typescript 编译)。在这些子项目的 CmakeLists.txt 中,我刚刚写了
project(typescript_compilation)
# Do not separate debug and release builds
set(CMAKE_CONFIGURATION_TYPES Release)
Run Code Online (Sandbox Code Playgroud)
如果首先打开发布配置,然后在 IDE (Visual Studio) 中打开调试配置,这将起作用。然后我可以在 Release 和 Debug 之间切换,项目可用并且只构建一次。
但是,如果在Cmake生成后先打开Debug配置,子项目无法加载,报错
typescript_compilation.vcxproj:错误:无法加载项目:项目不包含请求的配置调试|x64。请验证 .sln 文件是否有效并且仅使用现有的项目配置。
所以我的方式似乎是实现这一目标的错误方式,并且只有在首先打开并构建了发布模式时,调试模式才有效。只构建一次项目的最佳 Cmake 方法是什么?
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |