Makefile文件的制作

当我们有很多C源文件的时候,我们每次运行都要对其编译、链接……运行,这一步步的操作着实费时又费力,有不有更好的方法来为我们服务呢?我们知道ant可以用来构建java应用程序,通用我们也有make来为C服务。
类似于build.xml,在make读入的唯一的配置文件是Makefile,本文讲述Makefile的编写过程。首先然我们来看一个具体的Makefile文件是怎么构建的:
目录下有两个文件:
/home/l/g/tomotoboy/c >ls
factorial.c main.c


Makefile文件:
/home/l/g/tomotoboy/c >cat Makefile
main: main.o factorial.o
gcc -o main main.o factorial.o
main.o: main.c
gcc -c main.c
factorial.o: factorial.c
gcc -c factorial.c


使用make构建:
/home/l/g/tomotoboy/c >make main
gcc -c main.c
gcc -c factorial.c
gcc -o main main.o factorial.o

再次查看目录下文件的变化:
/home/l/g/tomotoboy/c >ls
Makefile factorial.c factorial.o main main.c main.o

运行我们的main程序:
/home/l/g/tomotoboy/c >main 9
Factorial of 9 is 362880.


现在我们来对Makefile文件做详细的解释,在一个Makefile中通常包含如下内容:
[list]
[*]需要由make工具创建的目标体(target),通常是目标文件或可执行文件。
[*]要创建每个目标体时所依赖的文件(dependency_file).
[*]创建每个目标体时需要运行的命令(command).
[/list]
它的格式为:
target: dependency_files
TAB command

第一行表示的是依赖关系.第二行是命令,注意规则第二行中的 TAB表示那里是一个 TAB 键。
比如我们上面的Makefile文件的第一行:
main: main.o factorial.o
表示我们的目标(target)main 的依赖文件是main.o、factorial.o。
当倚赖的对象在目标修改后修改的话,就要去执行规则一行所指定的命令.就象我们的上面那个 Makefile 第二行所说的一样要执行:
gcc -o main main.o factorial.o

同理,可以解释上面那个Makefile的3到6行。
有了上面的Makefile文件,我们就可以make了。使用的格式为:
make target

这样make就会自读入Makefile文件(也可以是小写makefile)并执行对应的command语句,并会找到所有的依赖文件,如果找不到就会报错,这样你就应该把依赖文件补上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值