MakeFile 不加变量的第一个版本
all:reader writer
reader:reader.o
g++ reader.o -o reader
reader.o:reader.cpp
g++ -c reader.cpp -o reader.o
writer:writer.o
g++ writer.o -o writer
writer.o:writer.cpp
g++ -c writer.cpp -o writer.o
clean:
rm -rf *.o all
推荐一个对makefile介绍的很好的blog: http://www.cnblogs.com/wang_yb/p/3990952.html
makefile都是各种依赖关系,各种规则
1. make后查看文件中是否有makefile文件
2. makefile中查看是否有include文件,有把include全部包括进来,如果有问题就报错
3. 查看是否有变量,有进行初始化
4. 推到所有的规则,隐晦规则,
5. 建立目标文件依赖关系链,target:a b,这种才可以系统自动建立,只要目标的需要程序员自己手动建立
6. 然后执行第一个目标文件,看是否依赖关系的文件比目标文件的更改或更新时间新,如果新重新编译(这里,没有目标文件,全部重新编译,如果有目标文件,就看更新时间,有改动的,有关系的都重新编译)
7. 生成目标文件
注:执行命令需要以tab键开头,不然错误
gcc -g -c .c .o
1、wildcard : 扩展通配符
2、notdir : 去除路径
3、patsubst :替换通配符