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

【简要说说】make 增量编译的原理

make 增量编译的原理

make是一个工具,它可以根据依赖关系和时间戳来自动执行编译命令。
当您修改了源代码文件后,make会检查它们的修改时间是否比目标文件(如可执行文件或目标文件)新,如果是,就会重新编译它们。
但是,这需要您在makefile中指定源代码文件和目标文件之间的依赖关系。

目标文件:依赖文件命令1命令2...命令n

例如,如果您有一个名为main.c的源代码文件,您想编译成一个名为main的可执行文件,您可以在makefile中写下这样的规则:

main:main.cgcc main.c -o main

这样,当您修改了main.c后,只要运行make命令,就会自动执行gcc main.c -o main来重新编译main。
如果您还有其他的源代码文件或头文件,也要加入到依赖文件中,以保证它们被修改后也能触发重新编译。
例如,如果您还有一个名为add.c的源代码文件和一个名为add.h的头文件,您可以在makefile中写下这样的规则:

main:main.c add.c add.hgcc main.c add.c -o main

这样,无论修改了哪个文件,都会重新编译main。

[1] https://zhuanlan.zhihu.com/p/92010728
[2] https://zhuanlan.zhihu.com/p/92010728

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

相关文章:

  • DETRs Beat YOLOs on Real-time Object Detection论文翻译
  • SpringBoot 多数据源配置
  • RK3568驱动指南|第十六篇 SPI-第192章 mcp2515驱动编写:完善write和read函数
  • #BI建模与数仓建模有什么区别?指标体系由谁来搭建?
  • 如何用Python实现三维可视化?
  • chrome.storage.local.set 未生效
  • 泛微开发修炼之旅--30 linux-Ecology服务器运维脚本
  • LeetCode 全排列
  • python实现支付宝异步回调验签
  • 注意!Vue.js 或 Nuxt.js 中请停止使用.value
  • Java:JDK、JRE和JVM 三者关系
  • Radio专业术语笔记
  • cocosCreator找出未用到的图片
  • 一览 Anoma 上的有趣应用概念
  • Spring Boot集成fastjson2快速入门Demo
  • Three.js机器人与星系动态场景(二):强化三维空间认识
  • java顺序查找
  • 提升学生职务执行力的智慧校园学工管理策略
  • 系统运维面试总结(shell编程)
  • 在数据库中,什么是主码、候选码、主属性、非主属性?
  • Linux-笔记 udev机制介绍
  • 深度学习基准模型Mamba
  • 面试专区|【40道移动端测试高频题整理(附答案背诵版)】
  • vb6多线程异步,VB.NET 全用API实现:CreateThread创建多线程,等待线程完成任务
  • Python中计算一个序列中特点值出现的数量,比如 [0,0,0,1,1,0,0,]中1的数量
  • gitignore
  • Adobe Premiere 视频编辑软件下载安装,pr全系列分享 轻松编辑视频
  • 大屏开发系列——Echarts的基础使用
  • 指挥中心操作台的形状及空间布局
  • Linux源码阅读笔记07-进程管理4大常用API函数