您的位置:首页 > 其它

make(二)makefile介绍

2013-06-11 13:26 225 查看
一makefile文件的内容:

*Makefile 里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 

 

1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由 Makefile 的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。 

 

2、隐晦规则。由于我们的 make 有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写 Makefile,这是由 make 所支持的。 

 

3、变量的定义。在 Makefile 中我们要定义一系列的变量,变量一般都是字符串,这个有点你 C 语言中的宏,当 Makefile 被执行时,其中的变量都会被扩展到相应的引用位置上。 

 

4、文件指示。其包括了三个部分,一个是在一个 Makefile 中引用另一个 Makefile,就像 C语言中的 include 一样;另一个是指根据某些情况指定 Makefile 中的有效部分,就像 C 语言中的预编译#if 一样;还有就是定义一个多行的命令。 

 

5、注释。Makefile 中只有行注释,和 UNIX 的 Shell 脚本一样,其注释是用“#”字符,这个就像 C/C++中的“//”一样。如果你要在你的 Makefile 中使用“#”字符,可以用反斜框进行转义,如:“\#”。 

 

*最后,注意,在 Makefile 中的命令,必须要以[Tab]键开始。 


 



二 makefile的规则:

(1)makefile规则形式:

target ... : prerequisites ... 

        command 

        ... 

        ... 


*target:可以是目标文件(object file)、可执行文件、或者一个action名字(比如:clean)。

*prerequisites:用来生成target的输入(所需文件或是目标),target依赖的文件。

*command:是make要执行的命令,一定要以tab开头。

*target 依赖于 prerequisites中的文件,其生成规则定义在 command 中。

* make会比较targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者 target 不存在的话,那么,make 就会执行后续定义的命令。



(2)makefile名字:

*默认情况下,make命令会在当前目录下按照顺序寻找文件名为"GNUmakefile"、"makefile"、"Makefile"的文件。大多数make都支持makefile和Makefile,最好使用“Makefile”。



(3)应用其它Makefile:

*在Makefile中使用include关键字把别的Makefile包含进来:include filename。

*make执行时,有"-I"或"--include-dir"参数,那么make就会在这个参数指定的目录下寻找makfile。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: