【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 改变的时间

简称为ACMA(访问)C(改变)M(修改)
修改的时间改变的时间不是一样的吗?
   不是哦,举个例子
文件即是文件内容(modify)文档属性(change)
  

   之前说了Linux当中,一个重要的头脑就是一切皆文件
所以
modify文件内容修改的时间
change文档属性修改的时间
文件内容修改一定会引起文档属性的改变,则时间也会引起改变
modif时间改变影响change时间改变 change不一定影响modify改变
比方文档属性可能重定名一下,但不会文档内容改变
  如何进行检察时间呢?
   用stat指令可以检察可实行文件和源文件的时间
  

深入一下

这里发现access访问的时间并没有发生变革,这不对
access访问时间应该是更改的是最频仍的,为什么反而没有变革呢?
   正是由于
Access访问是最频仍的,要反复写入硬盘中
多个用户利用则服从太低了
如今版本中设置者修改了一下,如今需要根据 modeify和change的频率来进行更改Access的记载时间或者要三四次access访问时间才能记载为一次有效的时间
如许做从而间接的提高了服从
  若不想进行优化,就想全部更新时间或者指定单独的时间进行更新,可以吗?
   touch 更新已有的文件
  

  • -mmodify单独进行更新
  



    1. 若该文件未存在,则会新建文件
    复制代码
    1. 若已存在,则会将时间全部进行更新。
    复制代码
    1. 注意:当时间全部进行更新后即make可以重新进行编译.
    复制代码

如许好麻烦呀,能不能找个一劳永逸的方法就让它重新自动化构建,而不是不停用touch进行更新时间?
   可以的
makefile输入伪目标.PHONY
  

  • 告诉编辑器总是放它通行
  

   但是不发起伪目标放入编译实现中,而常常将伪目标放入整理实现中
由于就算将伪目标放入编译中,编译器总是放它通行即重新编译
该重新编译在可实行步伐上新增内容编译,这可能导致老的问题依旧另有
所以常常将伪目标放入整理实践中
由于清洗了数据之后 再重新编译
完全先删除可实行步伐再重新创建重新编译可以有用避免老的问题
  好的,到此为止啦,祝您变得更强

想说的话
实不相瞒,写的每篇博客都要写五六个小时(加上本身学习和纸质条记,共八九小时吧),很累希望大佬支持

道阻且长 行则将至 个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我发展路上最大的动力


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表