我听说过很多关于 makefile 以及它们如何简化编译过程的信息。我正在使用VS2008。有人可以推荐一些在线参考资料或书籍,我可以在其中找到更多关于如何处理它们的信息吗?
8 回答
Microsoft 程序维护实用程序 (NMAKE.EXE) 是一种基于描述文件中包含的命令构建项目的工具。
一个 UNIX 专家可能告诉过你。:)
您可以在 VS 中使用 makefile,但是这样做会绕过 MSVC IDE 中的所有内置功能。Makefile 基本上是构建器的 reinterpret_cast。IMO 最简单的事情就是使用解决方案。
要回答具体问题...
我正在使用VS2008。有人可以推荐一些在线参考资料或书籍,我可以在其中找到更多关于如何处理它们的信息吗?
此链接将通过将 Makefile 与 Visual Studio 进行映射,为您提供一个很好的介绍。
面向 Visual Studio 开发人员的 Makefile 简介
我听说过很多关于 makefile 以及它们如何简化编译过程的信息。
Makefile 功能强大且灵活,但可能不是简化流程的最佳解决方案。考虑 CMake,它很好地抽象了构建过程,这在此链接中进行了解释。
在调用 devenv 构建特定项目之前,我实际上使用 makefile 构建所需的任何依赖项,如下所示:
debug: coratools_debug
devenv coralib.vcproj /build debug
coratools_debug: nothing
cd ../coratools
nmake debug
cd $(MAKEDIR)
你也可以使用 msbuild 工具来做同样的事情:
debug: coratools_debug
msbuild coralib.vcxproj /p:Configuration=debug
coratools_debug: nothing
cd ../coratools
nmake debug
cd $(MAKEDIR)
在我看来,这比试图找出过于复杂的 Visual Studio 项目管理方案要容易得多。
makefile 的 VS 等价物是“解决方案”(我知道过于简化了)。
总结一个完整的解决方案......
有2个选项:
- 从 Visual Studio 的开发人员命令提示符中使用 NMAKE
该快捷方式存在于您的开始菜单中。查看 makefile 内部是否有任何“设置”操作。动作显示为冒号前的第一个单词。通常,所有好的 makefile 都有一个“all”操作,因此您可以键入:NMAKE all
- 为每个二进制文件创建解决方案和项目文件。
大多数设计良好的开源解决方案都提供了一个带有设置操作的 makefile 来为您生成 Visual Studio 项目文件,因此请首先在 Makefile 中查找这些文件。
否则,您需要将每个文件或文件组和文件夹拖放到您在 Visual Studio 中创建的每个新项目中。
希望这可以帮助。
Makefile 和构建文件是关于自动化构建的。如果您使用 MSBuild 或 NAnt 之类的脚本,则可以直接从命令行构建项目或解决方案。这反过来使构建自动化成为可能,让它由构建服务器运行。
除了构建您的解决方案之外,构建脚本通常还包括运行单元测试、报告代码覆盖率和复杂性等任务。
如果您询问实际的命令行 makefile,则可以导出 makefile,或者您可以从命令行对解决方案文件调用 MSBuild。你到底想用makefile做什么?
您可以在 SO for MSBuild 上进行搜索以获取更多详细信息。