Build 确定makefile的预期目标系统

Build 确定makefile的预期目标系统,build,makefile,Build,Makefile,我试图理解make文件所采取的确切操作(第一次使用make处理构建) 我想知道make文件是打算由BSD make、GNU make还是Windows nmake使用。1) 如果不阅读这三个方面的文档并理解它们的差异,我如何做到这一点 2) 在阅读了几篇文章之后,我得出了这样的结论:make是一个实用工具,其主要目的是将源代码构建到可执行文件、DLL或某种形式的输出中,ide通常允许我们这样做。Makefile是向make实用程序提供指令的方法。是这样吗 3) make与构建代码的平台之间的关系

我试图理解make文件所采取的确切操作(第一次使用make处理构建)

我想知道make文件是打算由BSD make、GNU make还是Windows nmake使用。1) 如果不阅读这三个方面的文档并理解它们的差异,我如何做到这一点

2) 在阅读了几篇文章之后,我得出了这样的结论:make是一个实用工具,其主要目的是将源代码构建到可执行文件、DLL或某种形式的输出中,ide通常允许我们这样做。Makefile是向make实用程序提供指令的方法。是这样吗

3) make与构建代码的平台之间的关系是什么

4) 在依赖项行(目标:组件)下发出的命令是shell命令吗

提前谢谢

  • 如果不阅读所有这三个方面的文档并理解它们的差异,我怎么能做到这一点呢?

    很有可能,您将使用GNU Make。我认为,区分为Make的不同版本编写的Make文件相对简单

    AFAIK、GNU Make和BSD Make有许多不同之处,至少在语言语法上是如此。例如,在GNU中,Make一个典型的条件指令如下所示:

    ifdef VARIABLE
    # ...
    endif
    
    在BSD中,它是这样的(尽管我不确定):

    另见:

  • Makefile是向make实用程序提供指令的方法。是这样吗?

    是的,绝对正确

  • make与构建代码的平台之间有什么关系?

    Make只是一个实用工具,用于跟踪要构建的工件之间的依赖关系,并以适当的顺序运行命令以满足这些依赖关系。应该使用哪些确切的命令来完成任务取决于用户。因此,还可以使用Make进行交叉编译

  • 在依赖项行(
    target:components
    )下发出的命令是shell命令?

    是的,通常Make生成一个子shell来执行指定的配方

  • .if
    # ...
    .endif