使用命令行在 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 的 Nuget 包源
如何使用 Visual Studio 2019 开发人员命令提示符禁用 /Qspectre