根据时间戳来执行的(只会查找当前文件的时间和上次编译之后的文件的时间存在时间差值的文件,将其进行编译)
格式:
目标:依赖
[Tab键]命令表
定义变量格式:
定义:变量名
赋值:变量名:=值
使用变量的值:$(变量名)
$@:目标
$<:依赖中的第一个依赖
$^:依赖中的所有依赖
环境变量export:可以指明将赋值给其的所有变量应用于整个工程。
例:
根目录中:
All: #声明一个伪目标:
make -C ./src/ #先进入src
make -C ./obj/ #再进入obj
src中:
All:main.o good.o
mv *.o ../obj/
main.o:main.c
gcc -c -g -Wall main.c -o main.o
good.o:good.c
gcc -c -g -Wall good.c -o good.o
obj中:
All:MyApp
mv MyApp ../bin/
MyApp:main.o good.o
gcc *.o -o MyApp