一,@
用在规则行,表示不显示命令本身,只产生结果。
不使用@的结果:
使用@结果:
@g++ hello.cpp -o hello
二, $
扩展打开makefile定义的变量
cc = g++
hello : hello.c
$(cc) hello.cpp -o hello
三, $ @
代表目标文件(target)
cc = g++
hello : hello.c
$(cc) hello.cpp -o $@
四、 $^
代表所有依赖文件
all: print_max print_min #必须写成all这样的形式,否则只会生成前一个可执行文件main_max
print_max: print_max.c max.o
gcc $^ -o $@
print_min: print_min.c min.o
gcc $^ -o $@
max.o: max.c
gcc -c max.c
min.o: min.c
gcc -c min.c