波奇学Linux:make和Makefile

Make和Makefile用于自动化构建过程,决定源文件的编译顺序。依赖关系定义了目标文件和依赖文件的调用顺序,多条依赖时尤为重要。执行make会根据依赖关系自上而下执行。clean目标通常用于删除可执行文件,使用.PHONY防止伪目标的误判。文件的时间戳用于判断是否需要重新编译,避免不必要的编译过程。
摘要由CSDN通过智能技术生成

make和Makefile自动化构建并能决定源文件调用顺序,同时不必再写gcc命令

第一行依赖关系,第二行是tab键开头,是依赖方法

依赖关系:目标文件:依赖文件。

依赖方法:目标文件和依赖文件间的关系。

如果只有一条依赖那么依赖关系似乎作用不大,因为依赖关键字是什么make 都会执行指令,当有多条依赖时,依赖关系可以决定依赖的调用顺序。

运行的逻辑:从目标文件test.o寻找test.i依赖文件,再根据第二个依赖关系,寻找test.i 使得代码的由下往上运行,通过依赖关系来决定代码调用顺序。

执行make指令,能找到Makefile文件夹运行指令 

 

 clean:依赖关系为空,删除可执行文件,一般习惯上还用.PHONY修饰。

 

 

make显式调用clean

make + 目标文件:指定执行依赖,make指令由上往下执行到递归式完成一个依赖关系为止,不会执行clean依赖,所以必须显式调用clean

 make不能反复调用

当文件没有更新时,那么不会再编译,实现方法,比较源文件和可执行文件时间,如果源文件最近修改时间晚于可执行文件,不需要重新编译,如果是先于,需要重新编译。

文件的时间

stat test

 

 access:最近访问时间 Modify:最近修改文件内容 Change:最近文件属性(权限,尺寸)

当文件内容/属性被修改时文件的access也会被修改。access会被修改但是change或modify多次后才会显示出变化。一般通过Modify的时间决定是否重新编译。

touch文件可以手动更新到当前时间。完成多次make

 伪目标.PHONY关键字实现依赖能反复执行(更常放在clean处)

 

 

 特殊字符

用 $^依赖文件 $@表示目标文件 @在指令前能取消回显

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值