* head.h : 函数声明 、头文件名(C库、系统调用) 、全局变量 、 宏替换、结构体类型声明
make 文件 :
- 1、 Makefile makefile GNUmakefile 在同一目录下只能出现一者
- 执行方式 : make
- 2、test.mk test.AIX test.Linux
- 执行方式 :make -f test.mk
- 目标文件:依赖文件
- 通过依赖文件得到目标文件的命令
* C语言源程序 ---> 二进制文件 ---> 二进制可执行文件每一个makefile文件, 有且只有一个最终目标 . 注意: 命令前的缩进至少为一个tab字符 .
伪目标 : 没有依赖文件的目标.
- 执行伪目标时, 需要指定伪目标名:
- make clean
- 伪目标声明 :
- .PHONY:clean (伪目标名)
-
#
保证伪目标能够正确执行
显式规则:
- 目标文件:依赖文件
- 通过依赖文件得到目标文件的命令
- -命令 : 如果该条命令出错, 忽略错误, 继续向下执行.
- @命令 : 隐藏命令的执行步骤
.PHONY:clean
test:1.o 2.o 3.o 4.o
gcc *.o -o test
1.o:1.c
gcc -c 1.c -o 1.o
2.o:2.c
gcc -c 2.c -o 2.o
3.o:3.c
gcc -c 3.c -o 3.o
4.o:4.c
gcc -c 4.c -o 4.o
clean:
rm *.o
隐式规则:
- 针对于文件名, 只能替换后缀, 不能修改文件名.
.PHONY:clean
test:1.o 2.o 3.o 4.o
gcc *.o -o test
clean:
rm *.o
变量 :
- 变量的引用 : ${变量名}
1、变量 = 值 #支持变量的向后引用
2、变量 := 值 # 不支持变量的向后引用
3、变量 += 值 # 追加赋值
4、变量 ?= 值 # 如果前面代码有对变量进行赋值, 则该条语句忽略;
如果没有出现赋值, 该条语句生效.
环境变量 :
- CC : cc
- MAKE : make