visual-studio - 使用 CMake 生成构建系统时选择 MSVS 构建配置
问题描述
我有一个多平台 CMake 项目,有时我必须为 Windows 手动构建它。我生成这样的构建系统:
cmake -DCMAKE_BUILD_TYPE=Release -G"Visual Studio 16 2019" -A x64 ../path/to/source
然后我打开*sln
文件并按 F7 构建。它运行了 40 分钟,之后我了解到我没有在组合框中选择正确的配置。这很烦人!当命令行选项为-DCMAKE_BUILD_TYPE=Release
,但组合框设置为 时Debug
,构建会在花费相当长的时间后失败。
是否可以使用从命令行选择的构建配置生成 MSVS 项目?
请注意,我知道msbuild
命令和它的-p:Configuration=xxxxx
标志。问题是关于出于某种原因需要从 Visual Studio 的 GUI 构建的情况。
解决方案
目前无法使用 CMake 更改 GUI 的选定配置。
主要原因是此信息存储在.suo
Visual Studio 生成的文件中。CMake 本身只生成项目和解决方案文件,而.suo
文件将由 Visual Studio 自己生成。
或者,为此使用 CMake 的命令行构建选项。.sln
像往常一样配置项目并从 CMake生成 VS文件后,只需运行:
cmake --build <path_to_build_directory> --config Release
这独立于选定的生成器工作,是构建 CMake 项目的最可靠方式。
推荐阅读
- apostrophe-cms - 在撇号 CMS 中使用多个嵌套模块
- javascript - Angular 5 HttpClient : how to set interceptor to only filtered URLs by RegExp
- angularjs - 角度路由和.net:ng-view 不显示
- unity3d - 如何在 Unity 中实现等待屏幕
- azure - 获取 Azure 资源组创建时间
- docker - Dotnet Core 2.0 应用程序的 Docker 优雅关闭
- php - API 错误 - 遇到非数字值
- javascript - 在 Angular 5 中重新渲染(重新加载)路由器插座
- php - 如何使用 *this* PHP 代码向 CSV 添加标题行?
- c# - SQL Server:如果从 .net 代码中取消,则存储过程中打开的事务的默认操作