makefile引入及规则

引入

gcc -o test main.c sub.c -v 这样生成可执行文件弊端是,每次执行此语句main.c、sub.c都要被重新编译,完全没有必要!

应该:先编译,再链接

如何判断哪些文件被修改了:看.c和.o时间,.c时间比.o时间更晚的话,.c被修改了;.o时间比test时间更晚的话,.o文件被修改了

规则

makefile引入及规则

---

当依赖文件比目标文件新时,执行命令

比如:

  gcc -c -o main.o main.c

  gcc -c -o sub.o sub.c

  gcc -o test sub.o main.o

转化成Makefile规则如下

test:main.o sub.o

  gcc -o test sub.o main.o

main.o:main.c

  gcc -c -o main.o main.c

sub.o:sub.c

  gcc -c -o sub.o sub.c

--------------------------------------------------------------

第一次执行make

gcc -c -o sub.o sub.c

gcc -c -o main.o main.c

gcc -o test sub.o main.o

修改main.c文件后,执行make

gcc -c -o main.o main.c

gcc -o test sub.o main.o

修改sub.c文件后,执行make

gcc -c -o sub.o sub.c

gcc -o test sub.o main.o

 ----------------------------------------------------扩展

修改main.c sub.c时间戳touch main.c sub.c后,执行make

gcc -c -o sub.o sub.c

gcc -c -o main.o main.c

gcc -o test sub.o main.o

 

上一篇:linux wifi驱动rtl8188移植


下一篇:13472—3