我是 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 一起使用;但是,我找不到任何官方声明来支持这一点。关于这个问题我能找到的就这么多了。
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编译比编写脚本更方便。