make和makefile的应用

1.make和makefile的作用就是为了避免想要多次gcc,每次都得输入gcc指令.

make是一个命令,makefile是一个文件:输入make指令就会执行当前文件下的makefile文件,makefile文件里的内容就是gcc.格式如下

1.1简单的makefile文件内容

第一行分别是生成对象:依赖对象(生成对象只能是一个,但是依赖对象可以依赖多个,因为想要得到的结果不一定是只依赖一个文件)

第二行是编译指令 gcc前面是一个tab键,不能以空格代替

1.2也可以在makefile文件里分步写编译命令

1.3多个依赖对象

1.4也可以将多个依赖对象拆分

2.若依赖对象的最后依次修改时间小于目标对象的最后一次修改时间,则不需要重新生成

 

看图可知make执行之后makefile里的命令已经执行,并且新的文件已经生成在当前目录下.ll之后发现practic的最后修改时间是14号,二practic.c的最后修改时间是11号,说明在生成practic之后practic.c没有修改过,当前的practic和当前的practic.c是匹配的 .如果再执行make就不会再生成了.当依赖对象的修改日期比生成对象的修改日期新,说明依赖对象和生成对象不匹配,所以需要重新生成.

makefile文件同样支持头文件包含,也可以进行变量替换

$^:代表所有依赖对象

$@:代表目标对象

$<:第一个依赖对象

变量替换不是简单的替换,需要例如a=-o   gcc时,不能用a代替-o,需要用$(a);类似于指针里的解引用

 3.伪目标:用.PHONY修饰(作用就是总是被执行)

作用1:   第一行加.PHONY : [目标对象]

.当依赖对象的最后依次修改时间小于目标对象的最后一次修改时间,再执行make指令,依然会执行makefile里的内容

作用2:当目标文件生成之后当前目录下回显示出来,想删除需要rm命令.

再makefile文件里加以下三行

.PHONY:clean

clean:

        rm [生成的目标文件]

这三行的意思时:第一行定义一个伪目标clean,第二行生成对象时clean,依赖对象没有,第三行是命令

当make执行后会生成目标文件

再执行make clean 就能删除这个文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值