【Linux编程】Makefile文件中包含哪些规则?

想要书写一个完整的 Makefile文件,须要了解 Makefile 的相关的书写规则。咱们已经知道了 Makefile 描述的是文件编译的相关规则,它的规则主要是两个部分组成,分别是依赖的关系和执行的命令,其结构以下所示:程序员

targets : prerequisitesshell

command编程

或者是学习

targets : prerequisites; commandui

commandspa

相关说明以下:3d

    ✿ S9targets:规则的目标,能够是 Object File(通常称它为中间文件),也能够是可执行文件,还能够是一个标签;code

    ✿ prerequisites:是咱们的依赖文件,要生成 targets 须要的文件或者是目标。能够是多个,也能够是没有;blog

    ✿ command:make 须要执行的命令(任意的 shell 命令)。能够有多条命令,每一条命令占一行。ip

注意:咱们的目标和依赖文件之间要使用冒号分隔开,命令的开始必定要使用Tab键。

经过下面的例子来具体使用一下 Makefile 的规则,Makefile文件中添代码以下:

test:test.c

    gcc -o test test.c

上述代码实现的功能就是编译 test.c 文件,经过这个实例能够详细的说明 Makefile 的具体的使用。其中 test 是的目标文件,也是咱们的最终生成的可执行文件。

依赖文件就是 test.c 源文件,重建目标文件须要执行的操做是gcc -o test test.c。这就是 Makefile 的基本的语法规则的使用。

使用 Makefile 的方式:首先须要编写好 Makefile 文件,而后在 shell 中执行 make 命令,程序就会自动执行,获得最终的目标文件。

经过上面的例子咱们能够了解到,Makefile 的规则很简单,但这并非 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 中使用“#”字符,能够用反斜框进行转义,如:“\#”。


 

无论你是转行也好,初学也罢,进阶也可,若是你想学编程,进阶程序员~

【值得关注】个人 编程学习交流俱乐部 !【点击进入】

全栈程序员正在等你加入~

相关文章
相关标签/搜索