makefile

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

你可能感兴趣的:(makefile)