linux下makefile的理解与简易操作

本文章参考自:
https://blog.csdn.net/dongdong0071/article/details/52040559
https://www.cnblogs.com/wanglog/p/5555669.html
https://www.cnblogs.com/owlman/p/5514724.html
http://www.cnblogs.com/iRidescent-ZONE/p/5975166.html

当在写一个大型项目时,往往会有很多的函数文件,如果只单纯的使用gcc在终端里一个个手动编译怕是谁都不愿意吧。
这时候就需要一个能够按照你设定的规则去编译的工具—makefile。

在不是用makefile时,我们对于一个项目的多个文件,比如a.c,b.c,c.c,编译方法如下

gcc  a.c  –o  a.o                    //将三个.c文件编译成.o文件
gcc  b.c  -o  b.o
gcc  c.c  -o  c.o
gcc  a.o  b.o  c.o  –o  all         //将三个.o文件编译成一个可执行文件
./all                               //执行程序

以上例子还算文件少,如果有几十上百个文件,那这样子来编译就不现实了。
或者说,当你修改了其中的一个.c,那么你需要将所有东西都再次编译,修改多了就会让费很多时间。
此时引入makefile
Makefile:自动编译。先将每个.c文件的编译过程提前写在Makefile文件中,在运行程序时,系统直接用make命令使文件自动编译,提高效率。
Makefile文件的书写格式:
vim Makefile
其雏形为:

target : prerequisites 
(tab)command    //任意的shell 命令

target :要生成的目标文件
prerequisites :生成目标文件所需要的文件
commed:生成目标文件所需要执行的编译命令
实例:
有这几个文件:main.c, print.c, print.h

                                        //helloword 就是我们要生成的目标
helloworld : main.o print.o             // main.o print.o是生成此目标的先决条件
    gcc -o helloworld main.o print.o    //shell命令,最前面的一定是一个tab键
mian.o : mian.c print.h
    gcc -c main.c
print.o : print.c print.h
    gcc -c print.c   
clean :          
    rm helloworld main.o print.o

此时,makefile文件写完,现在只需要在终端输入 make 就可以完成makefile中指定的编译操作
一次搞定,很舒服。
若输入make clean就会删除 helloworld ,main.o, print.o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值