Linux环境下 make/makefile、文件时间属性 详解!!!

1.项目自动化构建工具make/makefile

1.为什么要有make/makefile

我们先写一个简单的代码,然后编译生成一个可执行程序,下面的内容我们需要知道gcc识和编译链接的一些知识,不清楚的朋友们可以点这里http://t.csdnimg.cn/0QvL8

我们知道要想生成一个可执行程序,需要一个或者多个.o文件链接形成一个可执行程序,一个我们还好说,但是如果有几十上百个.c文件那我们在用gcc编译的时候就很容易会写错,这里是指如果你多次修改.c文件里面的内容,你需要重新使用gcc重新编译链接,这样就难保不会写错,所以,这时候我们的自动化构建工具make/makefile就登场了!!!

2.怎么使用make/makefile

首先要明确一个概念,make是一个命令,makefie是一个文件

我们先使用touch命令创建一个makefile文件,接下来演示一遍

2.1.创建makefile文件

1.在makefile文件里面写上依赖关系依赖方法

依赖关系:mybin:test.c 

依赖方法:gcc -o mybin test.c

依赖关系里面又分为目标文件依赖文件列表

mybin目标文件

test.c依赖文件列表

2.2.使用make命令

在命令行使用 make+目标文件的形式

3.make不生效的情境下的解决方法(跟时间相关)

但是当我们再次make的时候我们发现会报错

意思就是说现在你的mybin已经是最新的了,不用重新编译,我们如果想重新编译的话,

有以下几种方法:

1.删掉原来的mybin

现在makefile文件里面写上删除文件对应的依赖关系和依赖方法

再用make clean 命令将旧的mybin可执行程序删除,最后使用make mybin 创建一个新的mybin可执行程序

2.使用 .PHONY:目标文件 (伪文件)

.PHONY:目标文件 
这里的目标文件时为伪目标,伪目标的特性:总是被执行的。

这时候在使用make mybin就不会报错了

4.make/makefile一些建议书写

1.直接make会执行makefile文件中从上往下数第一个依赖关系对应的依赖方法

2.一般将mybin:test.c 这种依赖关系对应的依赖方法放在前面,clean 清理工作放在最后,并且要用.PHONY修饰成伪目标

2.文件的三个时间属性

2.1文件的时间属性是什么

文件 = 内容 + 属性

这里的属性就包含了时间属性

使用stat命令查看文件的时间属性

2.2.change (属性更改时间)

当我们的文件属性被更改的时候,change也会被更改

2.3.modify(内容更改时间)

当我们的文件内容被更改的时候,modify也会被更改

当文件内容被更改的同时,文件大小也更改了,文件属性更改了,所以change时间也会被更改

2.4.access(访问时间)

在以前,当我们每次访问文件的时候,access时间也会被更改

注:随着计算机的发展,人们发现如果每次访问文件的时候,都将access时间更改了,那么就会导致计算机的整体效率偏低,所以后来并不是每次访问文件都将access时间更改,而是累计一定次数后再更改。

  • 73
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 54
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 54
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值