Makefile 学习笔记(二) Makefile的使用

脚本语言:Makefile

Linux C/C++ 必须要使用的脚本
  1. 创建文本文档 名字为Makefile
  2. ’# 是注释

一、显示规则

目标文件:依赖文件
[TAB] 指令
第一个目标文件是我们的最终目标!!!*
伪目标: .PHONY:

目标文件:依赖文件
[TAB] 指令

hello.i:hello.c
	gcc -E hello.c -o hello.i
hello.S:hello.i
	gcc -S hello.i -o hello.S
hello.o:hello.S
	gcc -c hello.S -o hello.o 
hello:hello.o
	gcc hello.o -o hello

根据 第一个目标文件是我们的最终目标!!!

hello:hello.o
	gcc hello.o -o hello
hello.o:hello.S
	gcc -c hello.S -o hello.o 
hello.S:hello.i
	gcc -S hello.i -o hello.S
hello.i:hello.c
	gcc -E hello.c -o hello.i

二、变量

= (替换)
+= 追加
:= (恒等于)
使用变量 $(变量名) 替换

TAR = test
CC := gcc
OBJ = hello.o

$(TAR):$(OBJ)
	$(CC)  $(OBJ) -o hello
hello.o:hello.S
	$(CC) -c hello.S -o hello.o 
hello.S:hello.i
	$(CC) -S hello.i -o hello.S
hello.i:hello.c
	$(CC) -E hello.c -o hello.i

.PHONY:
clean:
	rm -rf hello.i hello.S $(OBJ) $(TAR )

三、隐藏规则

%.c %.o 任意的.c .o *.c *.o 所有的.c .o

TAR = test
CC := gcc
OBJ = hello.o

$(TAR):$(OBJ)
	$(CC)  $(OBJ) -o hello
%.o:%.c
	$(CC) -c %.c -o %.o 

.PHONY:
clean:
	rm -rf hello.i hello.S $(OBJ) $(TAR )

四、通配符

$^ 所有的依赖文件
$@ 所有的目标文件
$< 所有的依赖文件的第一个文件

TAR = test
CC := gcc
OBJ = hello.o
RMRF := rm -rf 
$(TAR):$(OBJ)
	$(CC)  $^ -o $@
%.o:%.c
	$(CC) -c $^   -o $@

.PHONY:
clean:
	$(RMRF) hello.i hello.S $(OBJ) $(TAR )

五、函数

上一篇:中文转拼音


下一篇:编译运行rt-thread的qemu-riscv-virt64版本