论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
云原生
›
【Linux】 深入讲解自动化构建工具
【Linux】 深入讲解自动化构建工具
宁睿
论坛元老
|
2024-6-22 13:03:51
|
显示全部楼层
|
阅读模式
楼主
主题
1084
|
帖子
1084
|
积分
3262
各位大佬好 ,这里是阿川的博客,祝您变得更强
个人
主页
:在线OJ的阿川
大佬的
支持和鼓励
,将是我发展路上
最大的动力
阿川水平有限,如
有错误
,接待大佬
指正
Linux一系列的文章(质量分均在
93分
以上
)
Linux–发展、情况、指令上半场
Linux–指令下半场
Linux–权限
Linux–生态与工具
Linux–开辟工具
众所周知
自动化构建工具
是指
make
指令
可以大概
自动化
编译
和自动化
扫除
文件
makefile
文件
文件中
存在依赖关系
和
依赖方法
Makefile第一性原则
所以
单个make指令
表现编译吗
?
不一定
,在make中它会
默认
makefile文件中的
第1个依赖关系
为
具体实现
简写操纵
写
依赖方法的文件名
很麻烦
,可不可以
简写呢
?
输入
$ @
表现
简写
依赖方法
冒号的左边文件
$ ^
表现
简写
依赖方法
冒号的右边文件
即
$
锁定
为依赖方法的
冒号
,@表现
左边
, ^ 表现
右边
隐藏展示依赖方法
每次
利用
自动化构建工具
,都会
展示
具体的依赖方法
,若我
不想
让它展示
呢?
在依赖方法中加入@
深入了解
我们将
深入一下
,自动化构建工具
是如何进行工作
的?
makefile它有本身的一套
依赖关系栈式布局
且在makefile中它会自动帮你生存所写内容
时间问题
make常常用于编译,那我可以不停make,不停
重新编译
吗?
不能的,make指令它
会根据源文件和目标文件的新旧
,判断
是否需要重新
实行依赖关系
进行编译
.
翻译成
明白话
:
已经
编译过的文件
,之后编译器会
自动识别
是否编译过
若编译过了就不再编译了,由于可以
节流服从
,无需重新编译。
那编译器是
如何做出判断
的呢?
看
可实行步伐和源文件时间
:
若可实行步伐时间
大于
源文件时间,则
无需重新编译
。
若可实行步伐时间
小于
源文件时间,则
需重新编译
。
深入一点
?
源文件和可实行步伐新旧问题的
判断
,编译器
会将
源文件和可实行步伐时间
转换成时间戳
,
根据巨细
来进行
比较新旧
。
哦,
就是时间呢
?那很简单呀
不一定
时间分为:
Access
访问的时间
Modify
修改的时间
Change
改变的时间
简称为
ACM
:
A(访问)C(改变)M(修改)
修改的时间
和
改变的时间
不是
一样的吗
?
不是哦,举个例子
文件
即是
文件内容(modify)
加
文档属性(change)
之前说了
Linux当中
,一个重要的头脑就是
一切皆文件
所以
modify
是
文件内容修改的时间
change
是
文档属性修改的时间
则
文件内容修改
,
一定会
引起
文档属性的改变
,则
时间
也会引起
改变
即
modif时间改变
会
影响change时间改变
,
但
change不一定
影响
modify改变
比方
文档属性可能
重定名
一下,但
不会
文档
内容改变
。
如何进行
检察时间
呢?
用
stat指令
可以
检察
可实行文件和源文件的
时间
深入一下
?
这里发现
access访问
的时间
并没有发生变革
,这
不对
呀
access访问时间
应该是
更改的是
最频仍的
,为什么
反而没有变革
呢?
正是
由于
Access访问是
最频仍
的,要
反复写入硬盘中
若
多个
用户利用则
服从太低了
在
如今版本中
设置者
修改了
一下,如今需要
根据
modeify和change的频率
来进行
更改
Access的
记载时间
或者要三四次access访问时间
才能记载
为一次有
效的时间
如许做从而
间接的提高了服从
若
不想进行优化
,就
想全部更新时间
或者
指定单独的时间进行更新
,可以吗?
touch
更新已有的文件
-m
对
modify
单独
进行更新
若该文件未存在,则会新建文件
复制代码
若已存在,则会将时间全部进行更新。
复制代码
注意:当时间全部进行更新后即make可以重新进行编译.
复制代码
如许好麻烦呀,能不能
找个一劳永逸的方法
就让它
重新自动化构建
,而
不是
不停
用touch进行更新
时间?
可以的
在
makefile
下
输入伪目标.PHONY
告诉
编辑器
总是放它通行
但是
不发起
将
伪目标放入编译实现中
,而常常
将伪目标放入整理实现中
来
由于
就算将伪目标放入编译中,编译器总是放它通行
即重新编译
但
该重新编译
是
在可实行步伐上新增内容编译
,这
可能导致老的问题依旧另有
。
所以
常常将伪目标放入整理实践中
由于
当
清洗了数据之后
再重新编译
即
完全
先删除可实行步伐
,
再重新创建重新编译
可以
有用避免老的问题
。
好的,到此为止啦,
祝您变得更强
想说的话
实不相瞒,写的每篇博客都要
写五六个小时
(加上本身学习和纸质条记,
共八九小时
吧),
很累
,
希望大佬
支持
道阻且长 行则将至 个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我发展路上最大的动力
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
宁睿
论坛元老
这个人很懒什么都没写!
楼主热帖
java前置学习
【RocketMQ】消息的存储
iOS Widget
简单的用Python对手机号进行加密 ...
【PostgreSQL】PostgreSQL重建与主库不 ...
k8s v-1.20版本部署详细过程[实测可用 ...
基于单片机的压力测控仿真设计(#0024) ...
❤️肝下25万字的《决战Linux到精通》 ...
Unity 将是驱动 C# 增长的引擎吗 ? ...
【iOS面试总结】疫情隔离中,线上面试 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
分布式数据库
网络安全
虚拟化与私有云
前端开发
Java
DevOps与敏捷开发
MES
程序人生
快速回复
返回顶部
返回列表