将 CMake.txt 转换为 .vcxproj 文件 C++ Visual Studio 项目

Posted

技术标签:

【中文标题】将 CMake.txt 转换为 .vcxproj 文件 C++ Visual Studio 项目【英文标题】:Convert CMake.txt to .vcxproj file C++ Visual Studio project 【发布时间】:2019-11-28 14:06:55 【问题描述】:

是否有任何工具或可能性将 C++ CMake 项目转换为带有 .vcxproj 文件的 C++ Visual Studio 项目?

我需要这个,因为我们想在我正在工作的项目中提供 CMake 支持,但我们需要先进行此转换。我进行了很多搜索,但没有找到任何关于此转换的信息,至少目前还没有。

非常感谢任何意见或建议。 谢谢!

【问题讨论】:

CMake 生成 .vcxproj 文件...您是否尝试在项目上运行 CMake 以创建 .vcxproj 文件? 从 CMake 文件你可以generate a visual studio project,是的。 【参考方案1】:

这就是 cmake 所做的,为几乎任何 IDE 或构建管理器生成项目。

所以对于 VS 2017 可以这样使用:

cd "<path where CMakeLists.txt is located>"
mkdir build
cd build
cmake -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DCMAKE_GENERATOR_PLATFORM=x64 -G "Visual Studio 15 2017" ..
cmake --open .

【讨论】:

【参考方案2】:

CMake 可以原生生成 VS 解决方案。

如果你安装了 Visual Studio,CMake 将使用它作为默认设置。

cd "<path where CMakeLists.txt is located>"

# Creates build folder if it doesn't already exist
# Assuming I only have VS2022 installed it will just use that by default
# If you want to be explicit you can use do `-G "Visual Studio 17 2022"`
cmake -B build/

# Open IDE (works for XCode/Visual Studio)
cmake --open build

另外,Visual Studio 现在也可以原生读取 CMake:

https://devblogs.microsoft.com/cppblog/whats-new-for-c-cross-platform-developers-in-visual-studio-2022/

因此,您可以使用 Visual Studio 作为编辑器,使用 Ninja 进行构建,使用 CMake 进行管理。它们具有许多出色的跨平台开发功能。

【讨论】:

以上是关于将 CMake.txt 转换为 .vcxproj 文件 C++ Visual Studio 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何将VS2015工程转换成VS2012工程

为啥 vcxproj.filters 文件存在?

Visual Studio 在转换为 2013 的项目上使用较旧的 2012 编译器

如果无法创建 vcxproj 文件,是不是可以将 MSBuild 用作带有 Visual Studio 代码的 C++ 编译器?

Clearcase - 将两个文件合并为一个具有统一历史记录的文件

cmake - CMakeLists.txt 不在根文件夹中(但包含在源代码中)