近期在看韦东山的数码相框视频,有讲到怎么写一个通用的makefile,遂赶紧记录下来。废话不多说,下面进入正题。
1)程序的编译过程4个步骤:预处理,编译,汇编,链接.
预处理: 检测语法错误,把头文件包含进来,宏展开.
编译:把. c文件转换成汇编文件.s
汇编:把. s文件转换成二进制文件.o
链接:. .o文件+库文件 =可执行程序
gcc -v -o hello hello.c 就可观看到编译的细节.
2)写Makefile
核心:规则目标:依赖1 依赖2
命令
命令执行的条件:
i. "依赖"文件 比 "目标"文件 新
ii.没有"目标"这个文件
假设我们包含的文件要用到:a.c b.c a.h
1> 来看第一个makefile:
test:a.c b.c a.h
gcc -o test a.c b.c
</pre>对于a.c: 预处理、编译、汇编对于b.c:预处理、编译、汇编最后链接优点:命令简单缺点:如果文件很多,即使你只修改了一个文件,但是所有的文件文件都要重新"预处理、编译、汇编" 效率低<p>2>第二个Makefile</p><p></p><pre code_snippet_id="277584" snippet_file_name="blog_20140406_1_3955355" name="code" class="cpp">test:a.o b.o
gcc -o test a.o b.o
a.o : a.c
gcc -c -o a.o a.c
b.o : b.c
gcc -c -o b.o b.c