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

pxyaymoc  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(90)

我是一个初学者在开发的IDE像Visual Studio。具体来说,我刚刚安装了Visual Studio为C开发。之前,我编译我的C代码使用Makefile和GCC作为我的构建系统。然而,Visual Studio,默认情况下配置MSBuild作为我的构建系统。
在调查此事时,我发现了Visual Studio的NMake,我可以利用它来调用make命令来运行Makefile并以这种方式编译代码。
基本上,我想知道在Visual Studio中编译代码的更好方法是什么-是使用NMake运行Makefile还是使用默认的MSBuild。我想详细了解这两种方法的具体差异,以及使用一种方法对另一种方法的影响。在线资源没有提供关于这个问题的坦率答案。因此,我转向Stack Overflow寻求帮助。

  • P.S.*经过一些研究,我发现有人提到Visual Studio代码Map不适用于NMake;然而,我找不到任何官方声明来支持这一点。这就是我能找到的关于这个问题的所有信息。
lbsnaicq

lbsnaicq1#

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 Code Map,我没有找到它的命令来生成一个vcxproj文件。但是this document显示结构依赖于vcxproj。所以我认为这就是VS Code Map不支持NMake的原因。
我建议你使用msbuild,msbuild可以直接在vxproj文件上使用,通过GUI编译比写脚本更方便。

相关问题