分类:
2008-04-16 13:29:18
|
|
|
|
|
3.如果项目庞大的话,上述编译方法会带来很大的工作量。我们可以使用make工具。
4.在执行make之前,要编写一个文件:Makefile,如上面的例子
#Makefile
main: main.o mytool01.o mytool02.o
gcc -o main main.o mytool01.o mytool02.o
main.o: main.c mytool01.h mytool02.h
gcc -c main.c
mytool01.o: mytool01.c mytool01.h
gcc -c mytool01.c
mytool02.o: mytool02.c mytool02.h
gcc -c mytool02.c
5.描述文件依赖关系规则格式如下:
target: components
TABrule
第一行表示依赖关系,第二行表示规则
6.Makefile有三个常用的变量:
$@:表示目标文件
$^:表示所有依赖文件
$<:表示第一个依赖文件
所以上面的例子简化为:
main: main.o mytool01.o mytool02.o
gcc -o $@ $^
main.o: main.c mytool01.h mytool02.h
gcc -c $@ $<
mytool01.o: mytool01.c mytool01.h
gcc -c $<
mytool02.o: mytool02.c mytool02.h
gcc -c $<
7.Makefile的一个缺省规则:
..c.o:
gcc -c $<
这个规则表示所有的.o文件都是依赖对应的.c文件,所以上例继续简化:
main: main.o mytool01.o mytool02.o
gcc -o $@ $^
..c.o:
gcc -c $<