Makefile 学习

1、Makefile的规则

  target... : prerequisites ...

          command

          ...

...

-------------------------------------------------------------------------------

  target也就是一个目标文件,可以是Object File,也可以是执行文件。

       prerequisites就是,要生成那个target所需要的文件或是目标。

       command也就是make需要执行的命令。(任意的Shell命令)

       这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容。

(1) make 命令会在当前目录下查找以 Makefile(makefile 其实也可以)命名的文件。

(2)当找到 Makefile 文件以后就会按照 Makefile 中定义的规则去编译生成最终的目标文件。

(3) 当发现目标文件不存在,或者目标所依赖的文件比目标文件新(也就是最后修改时间比目标文件)晚的话就会执行后面的命令来更新目标。

2、Makefile 变量

Makefile 中的变量都是字符串

Makefile 中变量的引用方法是“$(变量名)”

在使用其他变量给新的变量赋值时,下面几个赋值运算符有所区别:

赋值符“=” : 变量的真实值取决于它所引用的变量的最后一次有效值

赋值符“:=” :不会使用后面定义的变量,只能使用前面已经定义好的

赋值符“?=”:如果前面已经赋过值了,那么就使用前面赋的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译, 甚至进行更...
    fred290阅读 298评论 0 0
  • 来自陈浩的一片老文,但绝对营养。 示例工程:3 个头文件*.h,和 8 个 C 文件*.c。 初 编译过程,源文件...
    周筱鲁阅读 4,747评论 0 17
  • 相信做过rom开发的,尤其做过机型适配的,一定知道makefile的重要性。这里我开了个章节,专门针对makefi...
    Stan_Z阅读 918评论 0 8
  • Makefile学习 参考自《跟我一起写Makefile》陈皓 Makefile 的语法规则 基本语法 翻译成中文...
    techping阅读 750评论 0 1
  • title: 2017-6-15makefiletags:makefile的书写和熟悉 示例 主要目的 是为了把一...
    宇文黎琴阅读 489评论 0 0