前言
c源文件想要最终生成成可执行文件首需要用gcc生成中间目标文件,再由目标文件生成可执行文件。make可以执行gcc的这些命令来生成所需目标,而makefile就是告诉make按照什么样的规则来生成这些目标。
makefile基本语法
makefile文件设计时一般采用从上而下的结构,所以默认将最上面的目标作为最终目标。
- target称作目标,可以出现一个或者多个
- prerequisite称作依赖,可以出现零个或者多个
- command称作命令,必须以[Tab]键开头,make通过这个识别这是一个shell命令送给shell执行。
- #是注释字符,表示后面的都是注释
执行make 目标后,当依赖比目标时间戳新时就会执行command来更新目标,当目标没有依赖时则command每次都会执行。
来个简单的makefile
在目录下新建个名字为makefile
的文件,写入如下代码
在同级目录下执行make
,也可以执行make all
,结果如下
- all就是目标,这里其实也是最终目标
- 依赖这里没有
- 命令是丢给shell执行,这里echo前面有个@符号,表示执行这条命令的时候不会打印,去掉的话就会打印这条shell命令