找出makefile的预期目标系统

时间:2012-02-06 11:05:20

标签: build makefile

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

我想知道make文件是否供BSD make,GNU make或Windows nmake使用。 1)如果不阅读所有三个文档并理解它们的差异,我怎么能这样做呢?

2)在阅读了几篇文章之后,我得出的结论是,make是一个实用程序,主要用于将源代码构建为可执行文件或DLL或某种形式的输出,IDE通常允许我们这样做。 Makefile是向make实用程序发出指令的方法。这是对的吗?

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

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

  1. 如果不阅读所有三种文档并了解它们的差异,我该怎么做?

    嗯,最有可能的是,你将使用GNU Make。我相信,区分为不同版本的Make编写的Makefile是相对简单的。

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

    ifdef VARIABLE
    # ...
    endif
    

    并且在BSD中使它像这样(虽然我不确定):

    .if
    # ...
    .endif
    

    另见:

  2. Makefile是向make实用程序发出指令的方法。这是对的吗?

    是的,绝对正确。

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

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

  4. 在依赖项(target : components)下发出的命令是shell命令吗?

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