使用命令行在 Visual Studio 2019 中打开 CMake 项目

Posted

技术标签:

【中文标题】使用命令行在 Visual Studio 2019 中打开 CMake 项目【英文标题】:Open CMake proejct in Visual Studio 2019 using command line 【发布时间】:2020-04-28 13:11:15 【问题描述】:

我使用Visual Studio IDE开发,VS C++编译,CMake在VS中生成项目,Ninja构建。

我有一个脚本,它可以从 git 服务器克隆一个项目,并在开始处理它之前自动执行我需要执行的几个步骤。

在此脚本结束时,我想在 Visual Studio 中打开该项目。之前我习惯用生成VS解决方案,然后使用带有sln文件的devenv作为参数打开它。但是现在我使用 VS 对 CMake 的支持,如果我使用 CMakeList.txt 文件作为参数,它只会打开这个文件而不是完整的项目。

有没有办法做我想做的事??

提前致谢。

【问题讨论】:

您能提供一个脚本示例吗?请展示它目前的功能。它会为你运行 CMake 吗? CMake生成的Visual Studio解决方案文件创建后为什么打不开? 我的脚本在做什么并不重要。我需要一种使用命令行在 Visual Studio 中打开 CMake 项目的方法。这有效:devenv solution.sln(其中 solution.sln 是 Visual Studio 解决方案)但此 devenv CMakeList.txt(其中 CMakeList.txt 是项目根目录中的 CMake 文件)确实在 Visual Studio 中打开文件,但没有加载整个项目。我需要从命令行在 Visual Studio 中加载 CMake 项目,以便能够从我的脚本或批处理文件中加载它。 所以,重新表述我之前的问题,这是否有效:mkdir build && cd build && cmake .. && devenv solution.sln 不,我不再使用 Visual Studio 解决方案。我只使用 IDE 和编译器,但我使用 Ninja 构建。要从 IDE 打开项目,请转到 File -> Open -> CMake... 并从项目的根文件夹中选择 CMakeList.txt 文件。但是从命令行执行此操作只是在编辑器中打开文件,而不是加载项目。可能没有办法做到这一点,因为对 CMake 的支持越来越好,但距离对 Microsoft 解决方案的支持还很远。 【参考方案1】:

假设你项目的根 CMakeLists.txt 位于C:\project\CMakeLists.txt 你可以调用

devenv "C:\project"

没有 CMakeLists.txt。

请注意,目前 Visual Studio 16.7 中似乎存在一个错误,即在打开目录时,所有视图(例如解决方案资源管理器)默认隐藏。 (https://developercommunity.visualstudio.com/content/problem/1140297/visual-studio-is-forgetting-docked-viewwindow-layo.html)

【讨论】:

以上是关于使用命令行在 Visual Studio 2019 中打开 CMake 项目的主要内容,如果未能解决你的问题,请参考以下文章

通过命令行在 Visual Studio 中编译单个独立文件

Visual Studio Code更改语言

有啥方法可以直接从命令行查看可用于 Visual Studio 的 Nuget 包源

如何使用 Visual Studio 2019 开发人员命令提示符禁用 /Qspectre

Visual Studio 2019:使用 vcvars64.bat 从命令行构建 C++ 不再起作用

Windows START命令加载错误版本的Visual Studio