Visual Studio 没有.sln文件时该怎么办?

3lxsmp7m  于 2022-12-30  发布在  其他
关注(0)|答案(2)|浏览(843)

我刚刚开始接触C++。我是被迫的,因为我想学习物理模拟。经过大量的努力,我发现我需要在我的电脑上安装Microsoft Visual Studio,以便编辑和编译GitHub上提供的源文件。
但是我注意到GitHub上的一些作者在他们的项目中没有包含.sln文件,这样我就无法用Microsoft Visual Studio打开/编辑/编译它们。相反,那些包含.sln文件并打算在DirectX上运行的项目是我自己修改后能够编译/执行的。
那么...那些不包含.sln文件或不适用于DirectX的项目中缺少什么呢?

mrfwxfqh

mrfwxfqh1#

世界上有许多构建系统,但对于Windows生态系统来说,有几个占主导地位的系统。

  1. MSBuild(Microsoft Build)是Visual Studio的默认生成系统。.vcxproj文件是使用MSBuild的Visual C++项目文件,.sln文件是组织一个或多个.vcxproj文件(对于C#,则是.csproj文件)的元文件。
  2. NMake(Microsoft Program Maintenance Utility,微软程序维护实用程序)是微软的老版本“makefile”编译系统。它仍然存在,但是很多年没有更新了。Visual Studio也可以支持基于nmake的.sln/.vcxproj文件,但是随着时间的推移,它已经失宠了,而且非常笨拙。
  3. MinGW(Windows最简GNU)有自己的“makefile”构建系统。
  4. CMake是一个跨平台的“元制作”解决方案,被包括Windows在内的许多平台使用。它可以针对MSBuild、Ninja、MinGW Makefile等以及许多其他构建系统,这就是为什么它是一个流行的开源和多平台解决方案。Visual Studio和Visual Code都支持使用此构建系统进行构建。当然,如果你愿意的话,你可以直接从命令行使用它,CMakeList.txt文件的存在表明了这一点。
    为了给CMake提供.sln文件的一些功能,CMake 3.20或更高版本支持CMakePresets.json文件,这使得它更容易在Visual Studio和Visual Code IDE中使用。
    有关Visual Studio内部版本中的详细信息,请参见Microsoft Docs。有关使用Visual Studio创建CMake的详细信息,请参见this article
    有关“makefile”的一般背景,请参见Wikipedia。
    我上面的列表还远远不够完整,因为有很多构建系统(SharpMake、Meson、FASTbuild等)。
fruv7luv

fruv7luv2#

Microsoft使用.sln文件作为Visual Studio管理项目(文件、编译规则、依赖项等)的一种方式,因此它是Microsoft特有的。
大多数C项目不是使用Visual Studio编写的,而是使用其他编辑器和构建系统。没有.sln文件的项目可以有CMakeLists.txt文件,可以用CMake编译(Visual Studio在最近的版本中得到了支持),或者meson.build文件可以用meson编译,Makefile可以用make编译,你明白了。
有很多C
的构建系统和IDE,因为它存在了很长时间,而且因为它是一种非常流行的语言(有很好的理由),所以人们创建了适合他们工作流的工具。然而,无论你选择使用什么构建系统或IDE,你编写的代码都不应该有任何差异(假设它符合C++的标准版本)。

相关问题