我试图了解make文件所采取的确切操作(第一次使用make进行构建)。
我想知道make文件是否供BSD make,GNU make或Windows nmake使用。 1)如果不阅读所有三个文档并理解它们的差异,我怎么能这样做呢?
2)在阅读了几篇文章之后,我得出的结论是,make是一个实用程序,主要用于将源代码构建为可执行文件或DLL或某种形式的输出,IDE通常允许我们这样做。 Makefile是向make实用程序发出指令的方法。这是对的吗?
3)make和构建代码的平台之间的关系是什么?
4)在依赖行(目标:组件)下发出的命令是shell命令吗?
提前致谢。
答案 0 :(得分:1)
如果不阅读所有三种文档并了解它们的差异,我该怎么做?
嗯,最有可能的是,你将使用GNU Make。我相信,区分为不同版本的Make编写的Makefile是相对简单的。
AFAIK,GNU Make和BSD Make有很多不同之处,至少在语言语法上是这样。例如,在GNU Make中,典型的条件指令如下所示:
ifdef VARIABLE
# ...
endif
并且在BSD中使它像这样(虽然我不确定):
.if
# ...
.endif
另见:
Makefile是向make实用程序发出指令的方法。这是对的吗?
是的,绝对正确。
make与构建代码的平台之间有什么关系?
Make只是一个实用程序,用于跟踪要构建的工件之间的依赖关系,并以正确的顺序运行命令以满足这些依赖关系。 应该使用哪些确切的命令来完成任务取决于用户。因此,您也可以使用Make进行交叉编译。
在依赖项(target : components
)下发出的命令是shell命令吗?
是的,通常Make会生成一个执行指定配方的子shell。