在 Visual Studio 中编译程序:Makefile 还是 MSBuild?有什么区别?

问题描述 投票:0回答:1

我是 Visual Studio 等 IDE 开发的初学者。具体来说,我刚刚安装了 Visual Studio for C 开发。之前,我使用 Makefile 和 GCC 作为构建系统来编译 C 代码。但是,Visual Studio 默认情况下将 MSBuild 配置为用作我的构建系统。

在调查此事时,我发现了 Visual Studio 的 NMake,我可以利用它来调用

make
命令来运行 Makefile 并以这种方式编译我的代码。

基本上,我想知道在 Visual Studio 中编译代码的更好方法是什么 - 是使用 NMake 运行 Makefile 还是使用默认值 MSBuild。我想要了解这两种方法的具体差异的详细信息,以及使用其中一种方法相对于另一种方法的影响。在线资源没有对这个问题提供坦率的答案。因此,我向 Stack Overflow 寻求帮助。

P.S. 经过一番研究,我发现有人提到 Visual Studio 代码映射不能与 NMake 一起使用;但是,我找不到任何官方声明来支持这一点。关于这个问题我能找到的就这么多了。

visual-studio makefile msbuild
1个回答
0
投票

MSBuild 是 Visual Studio 中所有项目(包括 C 和 C++ 项目)的本机构建系统。当您在 Visual Studio 集成开发环境 (IDE) 中构建项目时,它会调用

msbuild.exe
工具,该工具又会使用
.vcxproj
项目文件以及各种
.targets
.props
文件。 MSBuild 允许您从单个代码库轻松定位 Visual Studio 支持的所有 Windows 平台。

NMake 是 Visual Studio 附带的命令行工具,它根据描述文件(通常是 makefile)中包含的命令构建项目。 NMake 必须在开发人员命令提示符窗口中运行,该窗口具有为工具、库设置的环境变量,并包含在命令行构建所需的文件路径。 NMake 历史上在托管代码出现之前就被使用过,当时组件之间的依赖关系更简单。

对于NMake为什么不与VS代码映射一起使用,我没有找到它的命令来生成vcxproj文件。但是这个文档显示的结构是依赖于vcxproj的。所以我想这就是VS Code Map不支持NMake的原因。

我建议你使用msbuild。 msbuild可以直接对vxproj文件使用,通过GUI编译比编写脚本更方便。

© www.soinside.com 2019 - 2024. All rights reserved.