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

Linux——环境基础开发工具使用2(正在更新中...)

1.自动化构建-make/Makefile

1.1 认识make和Makefile

make是一个命令;

Makefile是一个文件。

 1.2 理解

其中在第一个图片中,第一行的

mytest:test.c

 叫做依赖关系;第二行的

gcc test.c -o mytest

叫做依赖方法。

依赖关系和依赖方法共同形成目标文件Makefile

1.3 具体语法

make 会自顶向下扫描Makefile文件,默认形成一个目标文件。

如果想要指定形成,make 后面跟一个指定名称。 

 

那么伪目标的作用是什么呢?

在Linux中,伪目标所依赖的方法,总是可以被执行的。 

 当Makefile中的内容是:

此时,只能执行一次编译,那么原因是什么呢?

主要原因是为了提高翻译效率。

那么是怎样判断要不要重新编译的呢?

 对比源文件与可执行文件的修改时间

在之前的博客中,我们提到,文件 = 内容 + 属性

 

对其编译之后,形成——

 形成了以 .c .i .o .s结尾的文件。

使用make clean指令,就可以将其清除掉。

1.4 推导过程

 (图一)

 (图二)

由图一可知,指令是从上到下依次执行的

(图片来自于比特就业课)

 该图片就解释了图一的过程。

根据上述,我们总结Makefile的推导原则——

将依赖方法不断入栈,推导完毕,出栈执行方法。

1.5 更加具有通用性的Makefile 

但是,我们一般不用这个来写,因为其不具有通用性。

 该代码比上一个更好,但是当源文件很多时,就不具有通用性。


http://www.kler.cn/a/396883.html

相关文章:

  • 查询DBA_FREE_SPACE缓慢问题
  • pytest在conftest.py中实现用例执行失败进行截图并附到allure测试报告
  • Flutter:Widget生命周期
  • 一文说清C++类型转换操作符(cast operator)
  • 直流保护电路设计及保护器件参数说明和选型
  • Springboot定时任务
  • aws(学习笔记第十四课) 面向NoSQL DB的DynamoDB
  • 1+X应急响应(网络)系统加固:
  • 基于BERT的命名体识别(NER)
  • 网关的发展趋势,网关开源项目Higress
  • WebRTC 和 WebSocket
  • 选择排序+快速排序递归版(二)
  • 缓存冲突(Cache Conflict)
  • Spring:IOC实例化对象bean的方式
  • 蔚来Java面试题及参考答案
  • 冷启动 VS 热启动
  • 职场汇报技巧:选择合适的汇报形式与提供数据依据
  • C++ 的发展
  • ArkUI---使用弹窗---@ohos.promptAction (弹窗)
  • Linux 实现自动登陆远程机器
  • Qt之QTreeWidget通过撤销栈移除item
  • 软考之RESTful 架构的特点
  • uview Collapse折叠面板无法动态设置展开问题(微信小程序)
  • Docker在微服务架构中的应用
  • 算法之二分查找优化:leetcode34:在排序数组中查找元素的第一个和最后一个位置
  • 用 Python 从零开始创建神经网络(七):梯度下降(Gradient Descent)/导数(Derivatives)