Makefile基础入门

Makefile基础了解

首先我们得了解makefile是用来干什么的?

makefile是用来管理工程的,比如一个软件项目,它有很多个.C文件,然后我们要编译这些C文件,最终生成一个可执行的文件,这就叫我们软件的工程管理。这个软件的工程管理就要用到makefile,为什么要用到makefile,因为很复杂很麻烦,有时候C文件多了以后,一个一个的来编译就很麻烦。makefile就可以统一编译。

在一个正式的软件项目中,由很多个.C和.H文件构成,此时如果直接在命令行编译,就会像这样:gcc a.c b.c c.c -o exe,每次编译都要输入一堆东西很麻烦,这个问题严重影响工作效率,怎么办?makefile来解决

一个简单的Makefile示例

首先创建一个Makefile文件:touch makefile
在这里插入图片描述
然后在这个Makefile里面去写:vi Makefile
在这里插入图片描述
创建a.c文件写一段简单的代码 vi a.c 然后 :wq 保存
在这里插入图片描述
后面编译直接make就好了,会直接生成exe执行文件
在这里插入图片描述
然后执行./exe,就能得到你想要的效果了。

hello world!

然后我要在添加一个b.c进去呢,我们vi b.c 里面定义一个变量让a.c调用
在这里插入图片描述
在a.c里面调用b.c的变量i
在这里插入图片描述
这个时候如果你没有Makefile,就要gcc a.c b.c -o exe,如果多了的话就比较长
用makefile来管理的话,就会方便很多。

vi makefile ,直接在这里加就完事了
在这里插入图片描述
然后make编译,然后执行跟你gcc a.c b.c -o exe 是一样
在这里插入图片描述
这样的话,我不管你有多少个.c文件,我只要写好一个makefile,全部都搞定。

标准一点的写法(gcc前面是一个tab’键),后面还有比较高端的写法
在这里插入图片描述

Makefile中的基本概念

:前面的exe叫作目标
:后面的a.c b.c 叫作依赖
下的东西叫作命令

目标:目标顶格写,后面是冒号(冒号后面是依赖)是我们想要得到的目标
依赖:依赖是用来产生目标的原材料
命令:命令前面一定是Tab,不能是顶格,也不能是多个空格。命令就是要生成那个目标需要做的动作。
(Windows里面移动到Linux中有可能会把Tab变成空格,此时编译会报错)
在这里插入图片描述

我make 那个目标就会得到相应的结果:
make exe 就会得到exe
make clean 就会删除exe
在这里插入图片描述
从这个现象就可以看出makefile的工作原理,说白了就是它就是想要把你要做的好多事情,先写好,然后在你make目标的时候他会自动执行这个目标
下面对应的那些命令。

总结:
一.当我们执行make xx 的时候,makefile会自动执行xx这个目标下面的命令语句。
二.当我们make xx的时候,是否执行命令是取决于依赖的。依赖如果成立就会立即执行命令,否则不执行。
三.我们直接执行make和make第一个目标 效果是一样的(默认目标)。

同一个目标下的命令都是一起的,要么都执行,要么都不执行。

先学会基本的概念和应用,先理解makefile的概念和使用方法,工作原理,先学会写用简单的makefile来管理工程。

推荐书籍《跟我一起学makefile》(作者:陈皓)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值