makefile脚本语言

makefile语言主要用于大型项目的自动化构建编译,只需要使用make命令便会自动在当前目录下寻找makefile文件并根据makefile文件中的定义的编译规则编译。通过对makefile脚本语言的学习,解答了我之前的一个疑惑,为什么初次编译时间长,但是之后改动代码后时间就少了许多?

这是跟makefile语法规则有关系,以下列句子为例子

edit : main.o kbd.o command.o display.o \
        insert.o search.o files.o utils.o
    cc -o edit main.o kbd.o command.o display.o \
        insert.o search.o files.o utils.o

该句目的是为了生成一个名为edit的目标文件,冒号后面是需要链接的文件,但是这里会进行一个判断,如果冒号后面的文件有一个以上比edit要新的话,就说明该项目有文件被更新了,就会执行cc-o这一句语句来重新生成edit,而make编译器也会找到是哪个文件需要重新生成,从而精准定位到更改的文件,这样的话就避免了对未更改的文件进行再次编译,所以就节省了很多时间,而对于我提出的这个问题,当项目第一次构建时,当然所有的文件都是新的,所以都需要重新编译,而当后续更改时,我们只更改了部分文件代码,所以make编译器也只会编译部分文件,让后重新链接生成新目标文件,从而节省时间。

在这里提出一个新问题,如果我每次编译前都使用make clean命令把中间文件进行删除,那么每次编译是否会比初次编译缩短时间呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值