当前位置: 首页 > news >正文

秒懂Linux之自动化构建工具-make/Makefile

fe594ea5bf754ddbb223a54d8fb1e7bc.gif

目录

一.前文摘要

二.make/Makefile


一.前文摘要

在学习自动化构建工具前我们先来补充一下动静态库的相关指令

动态库指令

gcc -o 文件(重命名) 源文件 

静态库指令

gcc -o 文件(重命名) 源文件 -static

二.make/Makefile

怎么形容这个呢~等我们使用后就知道为什么叫自动化了~

首先我们需要创建一个名为Makefile(makefile)且必须是该名字,然后我们vim进入该文件进行编写~

第一行为依赖关系:mybin是我们想要得到的可执行文件的命名,而test.c为源文件~

第二行为依赖方法:就是我们想要达到的目的——得到可执行文件(注意:必须前面tab有4格距离)

编写完成后我们只需要输入make指令~它就会自动帮我们生成可执行文件了~

我们还可以加入clean在里面编写删除文件的操作,这样只需要输入make clean就会帮助我们执行该操作了~

当我们尝试更改顺序后会发现make指令变成了clean操作,而生成可执行文件得用make mybin~

这是因为Makefile在形成文件的时候,默认是从上往下扫描的,所以指令语法上也会对应~

语法补充~

用.PHONY修饰clean后无论是否存在clean这个文件,都会去执行rm语句~

小知识点~

一般默认形成的都是第一个文件且只能生成一个,意味着不能多次make~

只有在重新对源文件作出修改的时候才可以重新使用make~那么我们通过什么来作为make可以使用呢?——通过对比Makefile文件与源文件test.c的修改时间~源文件时间更新说明就修改了~

我们用stat指令获取到了相关的时间,那么这3种时间哪个才是可以比较的时间呢?

Modify显示的是对文件内容作出修改的时间点~

Change显示的是对文件属性作出修改的时间点~

而一般modify都会带动chang的更新,因为文件内容的修改会影响到大小,而大小是属于文件属性的一部分~

Access显示的是访问的时间,(不过不可能实时更新,而是达到一定访问次数更新,节省成本)

而我们比较的时间是Modify,这很合理~

http://www.lryc.cn/news/412311.html

相关文章:

  • .net core + vue 搭建前后端分离的框架
  • 小阿轩yx-KVM+GFS 分布式存储系统构建 KVM 高可用
  • centos安装mysql 5.7版本
  • SQL——查询sql执行顺序
  • 钉耙编程(3)
  • python 线程池处理文件
  • AI技术和大模型对人才市场的影响
  • 解释“location”和“position”
  • Netty 必知必会(三)—— ByteBuf
  • 芋道以开源之名行下作之事 恬不知耻 标榜自己开源 公开源码+sql 不用再加入知识星球
  • wordpress中,wp_posts 文章的状态 有哪些,分别对应什么数值
  • 输入成绩问题(c语言)
  • 基于域名+基于ip+基于端口的虚拟主机+上线商务系统
  • vue每次路由跳转前将页面滚动到顶部
  • 【Qt】QDateTimeEdit
  • Redis和Mysql如何保持数据一致性
  • Java中Optional相关
  • AI在HR候选人关系管理中的革新应用
  • HTML+CSS+JavaScript制作七夕表白网页(含音乐+自定义文字+烟花特效)
  • 【Python机器学习系列】一文教你实现决策树模型可视化(案例+源码)
  • 如何在Python中使用网页抓取API获得Google搜索结果
  • Postman高频面试题及答案汇总(接口测试必备)
  • JavaEE 初阶(13)——多线程11之“定时器”
  • 2024最新全开源付费进群系统源码二开修复版 支持易支付
  • 【奥顺苹果CMS二开泛目录4.X版】PHP站群程序新增首页堆砌关键词新增四套seo模板
  • day06 项目实践:router,axios
  • ⌈ 传知代码 ⌋ 基于矩阵乘积态的生成模型
  • 软件测试必备技能
  • TL3568编译uboot报错
  • qiankun 微前端 隔离子应用样式,解决 ant-design-vue 子应用样式污染问题(已落地)