如何在Visual Studio中使用makefile?

che*_*r89 62 c++ makefile visual-studio

我听说过很多关于makefile的内容以及它们如何简化编译过程.我正在使用VS2008.有人可以建议一些在线参考或书籍,我可以找到更多关于如何处理它们?

Ale*_*son 52

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

NMAKE参考


Joh*_*ing 19

一个UNIX人可能告诉过你.:)

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

  • 另外,Microsoft在内部使用makefile.没有人会梦想将Windows源代码加载到解决方案文件中. (59认同)
  • 这实际上并没有回答这个问题. (59认同)
  • .vcproj文件有很多膨胀,除非你使用其他东西生成它们(scons,cmake),否则会非常快速地变得笨拙. (12认同)
  • 世界上这个被接受的答案怎么样?它没有做任何回答被问到的完全有效的问题. (9认同)
  • @John Dibling:"它绕过了MSVC IDE中的所有内置功能".什么是绕过的内置功能?优化是否也被绕过? (2认同)
  • 在不同的平台上支持总是很好,而不是与MS完全紧密.特别是如果我们在Linux和Microsoft上开发应用程序. (2认同)

ap-*_*osd 15

回答具体问题......

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

通过使用Visual Studio映射,此链接将为您提供有关Makefile的良好介绍.

Visual Studio开发人员的Makefile简介

我听说过很多关于makefile的内容以及它们如何简化编译过程.

Makefile既强大又灵活,但可能不是简化流程的最佳解决方案.考虑一下CMake,它很好地抽象了这个链接中解释的构建过程.

适用于Visual Studio开发人员的CMake


Jon*_*ein 7

我实际上使用makefile来构建在调用devenv来构建特定项目之前所需的任何依赖项,如下所示:

debug: coratools_debug
    devenv coralib.vcproj /build debug

coratools_debug: nothing
    cd ../coratools
    nmake debug
    cd $(MAKEDIR)
Run Code Online (Sandbox Code Playgroud)

您还可以使用msbuild工具执行相同的操作:

debug: coratools_debug
    msbuild coralib.vcxproj /p:Configuration=debug

coratools_debug: nothing
    cd ../coratools
    nmake debug
    cd $(MAKEDIR)
Run Code Online (Sandbox Code Playgroud)

在我看来,这比试图找出过于复杂的视觉工作室项目管理方案要容易得多.


Joe*_*orn 5

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


jus*_*n23 5

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

有2个选项:

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

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

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

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

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

希望这可以帮助。