预备知识:
gcc 的3个参数:
1. -o 指定目标文件
gcc sources/main.c -o bin/main
2. -c 编译的时候只生产目标文件不链接
gcc -c sources/main.c -o obj/main.o
3. -I 主要指定头文件的搜索路径
gcc -I headers -c main.c -o main.o
4. -l 指定静态库
gcc -lpthread ...
3个预定义变量介绍:
1. $@ 表示要生成的目标
2. $^ 表示全部的依赖文件
3. $< 表示第一个依赖文件
bin/st_work : obj/main.o obj/st_work.o obj/fun.o
gcc $^ -o $@ (命令一定要用以Tab开头)
obj/st_work.o : sources/st_work.c
gcc -I headers -c $< -o $@
obj/main.o : sources/main.c
gcc -I headers -c $< -o $@
obj/fun.o : sources/fun.c
gcc -I headers -c $< -o $@
clean:
rm -f bin/st_work obj/*.o