1. makefile 文件描述了整个工程的编译,链接等规则。
规则:用于说明如何生成一个或多个目标文件,规则格式如下:
targets: prerequisites command
目标 : 依赖 命令 (命令需要以[TAB]键开始)
例: main.o: main.c gcc -c main.c
2. 目标:
Makefile 中只应该有一个最终目标,其他目标都是被这个目标所带出来的 。
一般,第一条规则中的目标将被认为是最终目标。
3. 文件名:
make 命令默认在当前目录下寻找名字为makefile或Makefile的文件。
或使用: make -f 指定文件名。
4. 伪目标:
Makefile中把那些没有任何依赖的只有执行动作的目标称为“伪目
标”(phony targets).
如: .PHONY: clean ( .PHONY 将 clean 目标声明为伪目标) clean: rm -f hello main.o
5. 变量:
obj=main.o func1.o func2.o
hello:$(obj) gcc $(obj) -o hello
在makefile中,存在系统默认的自动化变量
$^ --- 代表所有的依赖文件 $@ --- 代表目标 $< --- 代表第一个依赖文件
例: hello: main.o func1.o func2.o gcc main.o func1.o func2.o ==> hello: main.o func1.o func2.o gcc $^ -o $@
6. 杂项:
a. Makefile 中 “#” 字符后的内容被视为注释。
b. @ --- 取消回显,不会显示命令信息。
如:
hello: hello.c @gcc hello.c -o hello