概要

makefile配合make使用,make相当于makefile的解释器,makefile相当于待执行脚本

makefile文件基本语法

目标文件(希望生成的文件):依赖文件(生成目标文件需要的文件)
执行命令
是否执行执行命令,取决于依赖文件和目标文件的最新修改时间,如果依赖文件修改时间晚于目标文件,则重新执行命令。

递推规则

就是如果依赖文件是别的语句中的生成文件,可以先执行别的语句产生依赖文件

伪目标

就是目标文件可以是伪指令(不会生成文件),但可以执行指令

自定义变量 系统变量

就是先定义一个变量(这个定义比较随意就是用一个=),然后用$引用变量。有一些变量是系统变量有固定含义

makefile 基本总结相关推荐

  1. 浅显易懂 Makefile 入门 (12)— Makefile 常见的错误信息

    1. 常见的错误信息 make 执行过程中所产生错误并不都是致命的,特别是在命令行之前存在 -.或者 make 使用 -k 选项执行时. make 执行过程的致命错误都带有前缀字符串 ***.错误信息 ...

  2. 浅显易懂 Makefile 入门 (10)— 嵌套执行 make、export 的使用

    1. 嵌套执行 make 在一个大的工程文件中,不同的文件按照功能被划分到不同的模块中,每个模块可能都会有自己的编译顺序和规则,如果在一个 Makefile 文件中描述所有模块的编译规则,就会很乱,执 ...

  3. 浅显易懂 Makefile 入门 (09)— include 文件包含、MAKECMDGOALS

    1. include文件包含 当 make 读取到 include 关键字的时候,会暂停读取当前的 Makefile,而是去读 include 包含的文件,读取结束后再继读取当前的 Makefile ...

  4. 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行

    1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...

  5. 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )

    1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...

  6. 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)

    编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...

  7. 浅显易懂 Makefile 入门 (03)— 目标文件搜索(VPATH 和 vpath 的区别和使用)、隐含规则

    1. 目标文件搜索(VPATH和vpath) 如果需要的文件是存在于不同的路径下(即源文件与 Makefile 文件不在同一个路径下),在编译的时候就用到了 Makefile 中为我们提供的目录搜索文 ...

  8. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  9. 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译

    1. 什么是 Makefile Makefile 文件描述了 Linux 系统下 C/C++ 工程的编译规则,它用来自动化编译 C/C++ 项目.一旦写编写好 Makefile 文件,只需要一个 ma ...

  10. Android 的NDK的Makefile编写

    Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...

最新文章

  1. STM32 HAL库详解 及 手动移植
  2. 【错误记录】Kotlin 1.5.0 编译报错 ( 1.5.0 中 Float 不能直接转 Byte 类型 )
  3. 计算机windows10属性配置,电脑显示属性设置,教你win10系统电脑显示属性的设置教程...
  4. React列表中实现文案多行收起展开的功能
  5. Spring代理模式及AOP基本术语
  6. 表单和ajax中的post请求后台获取数据方法(深度好文)
  7. python—列表,元组,字典
  8. linux的I/O多路转接select的fd_set数据结构和相应FD_宏的实现分析
  9. 第18集丨不立志,天下无可成之事
  10. HBase集群出现NotServingRegionException问题的排查及解决方法
  11. GCD Expectation ZOJ - 3868 (容斥)
  12. 【Jenkins】的四种插件安装方式
  13. Codeforces Round #797 (Div. 3) F. Shifting String题解
  14. web clip(mobileconfig)配置签名去掉未验证
  15. 中学生计算机制作大赛,【崇德尚学 和雅金中】热烈祝贺金沙中学在2019年南海区中学生电脑制作活动中硕果累累!...
  16. Spark Mllib里的分布式矩阵(行矩阵、带有行索引的行矩阵、坐标矩阵和块矩阵概念、构成)(图文详解)...
  17. lustre lnet
  18. 视频教程-JavaScript从入门到进阶视频课程-JavaScript
  19. obs媒体源没有声音_OBS虚拟摄像头,让视频会议不再尴尬
  20. 培养学生计算机绘画水平,电脑绘画教导方法

热门文章

  1. mysql的远程帐号密码_MySQL设置远程客户端访问权限和修改账户密码
  2. JS页面跳转的各种形式
  3. java poi之Excel的创建
  4. CaffeMFC:caffe.pb.h(2525): error C2059: syntax error : 'constant'
  5. 三维重建9:点云图像的滤波方法小结
  6. STL编程:C++的忠告!
  7. 并查集与贪心算法的应用之求解无向图的最小生成树
  8. python 正则表达式 re findall 返回能匹配的字符串
  9. dedecms提取某栏目及子栏目名称到首页怎么弄
  10. webstrom 中 plugins error 设置里 Languages Frameworks里面没有JavaScript?