1、makefile的工作原理(规则):
目标 : 依赖
命令
(1)写在第一个的目标是终极目标,如果单纯的执行make指令,就会直接生成最终目标。如果目标命令无法生成目标,则会根据后面的依赖往后查找目标,直到完成所有的依赖,才执行终极目标的命令。
(2)如果想单独执行taget_x,可以使用指令make taget_x。
(3)如果makefile中的依赖时间比目标晚,命令才会重新执行,否则则不执行。
(4)大写变量一般是makefile自己维护的变量,例如其中的CC默认是CC=cc,其实也就是CC=gcc,如果我们使用g++编译cpp文件,我们就可以将其改为CC=g++。
2、变量的使用
可以直接在makefile中定义变量,如:
src=xx.cpp xxx.cpp xxxx.cpp
等,中间用空格隔开,如果要取回变量的值,就可以用
$src 或 $(src)
这样会读出src中的所有变量,也就是这三个.cpp文件。
3、几个重要的变量
CPPFLAGS:需处理需要的选项,如 -I (头文件路径)
CFLAGS:编译时使用的参数,如 -Wall -g -c
LDFLAGS:链接库使用的选项,如 -L
4、自动变量
%.o:%.cpp
$(CC) -c $< -o $@ ($<