Makefile
Makefile
一、Makefile规范
目标文件1:依赖文件1 依赖文件1.1......
(tab键)依赖文件1如何生成目标文件
目标文件2:依赖文件2
(tab键)依赖文件2如何生成目标文件
注意:
1、两个文件之间没有任何关系,系统默认只执行目标文件1
2、一个Makefile可以有多个目标文件
3、调用make命令时,需要告诉他目标是什么,没有制定目标文件时,
那么make以Makefile文件中定义的第一个目标作为这次的执行文件
例:make clean//执行目标文件clean和它所对应的命令
4、先会执行依赖文件
例:
目标文件1:目标文件2
(tab键)echo “1”
目标文件2:依赖文件2
(tab键)echo “2”
结果:先输出2再输出1
二、解决假目标的方法;
在执行make clean的时候
问题:如果文件目录里面有clean文件了,就会出现问题
解决方法:在我们的clean前面再加一个依赖.PHONY:clean就可以了
三、预定义变量
Makefile 预定义变量包含了编译器常见的名称及其编译选项
CC c编译器的名称 默认为gcc;例CC:=gcc
CFLAGS c编译器的选项 无默认值例CFLAGS:=-c -g
RM 文件删除程序的别名 默认为rm -rf
四、自定义变量
OBJ和OBJS:一个用于存放可执行文件名,另一个用于放置所有的目标文件名;
五、自动变量
$@:表示目标文件
$^:表示所有的依赖文件
$<:第一个依赖文件
感想收获~
1、目标文件和依赖文件其实就只是一种命令的执行顺序,或者说只是给命令加一个执行顺序。
2、Makefile里面:@命令行//表示只执行该命令行而不输出,因为Makefile在执行的时候是默认将命令输出出来的;