【问题标题】:How to use makefiles in Visual Studio?如何在 Visual Studio 中使用 makefile?
【发布时间】:2023-03-19 09:42:01
【问题描述】:

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

【问题讨论】:

  • makefile 风格的 VS 项目似乎不适用于某些 VS 功能,例如 Code Map。
  • 看起来makefile风格的VS项目不适用于某些VS功能,例如Code Map,即使您添加/FR编译选项来生成浏览信息。

标签: c++ visual-studio makefile


【解决方案1】:

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

NMAKE Reference

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • .vcproj 文件有很多膨胀,并且增长得非常快,除非你使用其他东西来生成它们(scons,cmake)。
    • 另外,微软在内部使用 makefile。没有人会梦想将 Windows 源代码加载到解决方案文件中。
    • 这实际上并不能回答问题。
    • @John Dibling :“它绕过了 MSVC IDE 中的所有内置功能”。什么是被绕过的内置功能?优化也被绕过了吗?
    • 这到底是怎么被接受的答案?它无法回答所提出的完全有效的问题。
    【解决方案3】:

    回答具体问题...

    我正在使用 VS2008。有人可以建议一些在线参考吗 或者我可以找到更多关于如何处理它们的书籍?

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

    Introduction to Makefiles for Visual Studio developers

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

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

    CMake for Visual Studio Developers

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 为什么这个简单的事实没有在其他地方明确提及?困扰我很久了。
        【解决方案6】:

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

        有两种选择:

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

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

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

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

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

        希望这会有所帮助。

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-07-07
              • 2016-12-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多