67

我听说过很多关于 makefile 以及它们如何简化编译过程的信息。我正在使用VS2008。有人可以推荐一些在线参考资料或书籍,我可以在其中找到更多关于如何处理它们的信息吗?

4

8 回答 8

56

Microsoft 程序维护实用程序 (NMAKE.EXE) 是一种基于描述文件中包含的命令构建项目的工具。

NMAKE 参考

于 2008-11-25T19:20:17.417 回答
19

一个 UNIX 专家可能告诉过你。:)

您可以在 VS 中使用 makefile,但是这样做会绕过 MSVC IDE 中的所有内置功能。Makefile 基本上是构建器的 reinterpret_cast。IMO 最简单的事情就是使用解决方案。

于 2008-11-24T16:07:18.633 回答
18

要回答具体问题...

我正在使用VS2008。有人可以推荐一些在线参考资料或书籍,我可以在其中找到更多关于如何处理它们的信息吗?

此链接将通过将 Makefile 与 Visual Studio 进行映射,为您提供一个很好的介绍。

面向 Visual Studio 开发人员的 Makefile 简介

我听说过很多关于 makefile 以及它们如何简化编译过程的信息。

Makefile 功能强大且灵活,但可能不是简化流程的最佳解决方案。考虑 CMake,它很好地抽象了构建过程,这在此链接中进行了解释。

面向 Visual Studio 开发人员的 CMake

于 2014-09-14T07:58:13.290 回答
7

在调用 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 项目管理方案要容易得多。

于 2008-11-24T23:23:01.483 回答
5

makefile 的 VS 等价物是“解决方案”(我知道过于简化了)。

于 2008-11-24T15:56:54.460 回答
5

总结一个完整的解决方案......

有2个选项:

  1. 从 Visual Studio 的开发人员命令提示符中使用 NMAKE

该快捷方式存在于您的开始菜单中。查看 makefile 内部是否有任何“设置”操作。动作显示为冒号前的第一个单词。通常,所有好的 makefile 都有一个“all”操作,因此您可以键入:NMAKE all

  1. 为每个二进制文件创建解决方案和项目文件。

大多数设计良好的开源解决方案都提供了一个带有设置操作的 makefile 来为您生成 Visual Studio 项目文件,因此请首先在 Makefile 中查找这些文件。

否则,您需要将每个文件或文件组和文件夹拖放到您在 Visual Studio 中创建的每个新项目中。

希望这可以帮助。

于 2017-06-29T14:32:25.777 回答
2

Makefile 和构建文件是关于自动化构建的。如果您使用 MSBuild 或 NAnt 之类的脚本,则可以直接从命令行构建项目或解决方案。这反过来使构建自动化成为可能,让它由构建服务器运行。

除了构建您的解决方案之外,构建脚本通常还包括运行单元测试、报告代码覆盖率和复杂性等任务。

于 2008-11-24T16:22:25.843 回答
1

如果您询问实际的命令行 makefile,则可以导出 makefile,或者您可以从命令行对解决方案文件调用 MSBuild。你到底想用makefile做什么?

您可以在 SO for MSBuild 上进行搜索以获取更多详细信息。

于 2008-11-24T16:03:29.330 回答