【Linux】make是如何判断可执行文件是否需要重新编译呢?(ACM时间)

news2024/11/24 3:51:30

在这里插入图片描述

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶🔹C++
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍

文章目录

  • 一、问题引入
  • 二、ACM时间
  • 三、make如何判断的呢?
    • 1.只是进行cat查看,修改了Access时间。不重新编译。
    • 2.使用vim修改。改动了Modify时间。重新编译。
  • 四、总结

一、问题引入

看下幅图:执行了四次make,有时会执行依赖方法,重新编译了,有时又不会变化。
在这里插入图片描述

首先我们应该清楚,make的这种机制是很好的,因为每编译一次,都会消耗资源与时间。所以,如果依赖文件内容如果没有发生变化的话,就应该保留上次的编译结果,不在重复执行,增加消耗。

二、ACM时间

首先,了解一下ACM时间是什么:
每一个文件都会有它的ACM时间,去记录它的时间信息。
在这里插入图片描述
make指令通过这个Modify时间来进行对比才能判断出是否需要重新编译。

三、make如何判断的呢?

演示一下:
在这里插入图片描述
此时使用make就会,显示make: `mytest’ is up to date.。不会重新编译。

接下来,修改一下test1.c.

1.只是进行cat查看,修改了Access时间。不重新编译。

在这里插入图片描述

2.使用vim修改。改动了Modify时间。重新编译。

在这里插入图片描述

四、总结

make是根据【modify时间是否变化】判断可执行文件是否需要重新编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1583366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

express操作mysql数据库的方法总结

作为前端,我们无需去考虑数据库的问题,业务场景需要的话,我们可以mock数据,满足暂时的联调场景。但是对于数据库,我们前端可以不用,却不能不了解不懂。所以这篇文章整理下,nodejs框架express中怎…

[闲聊统计]之参数估计是什么?(上)

参数估计是推断统计的重要内容之一。它是在抽样及抽样分布的基础上,根据样本统计量来推断所关心的总体参数。说白了,就是用样本信息来代替总体信息 例如:现在要调查某大学大学生的一个消费情况,假设全校大学生的平均消费金额为 μ…

pycharm一直打不开

一直处在下面的页面,没有反应 第一种方案: 以管理员身份运行 cmd.exe;在打开的cmd窗口中,输入 netsh winsock reset ,按回车键;重启电脑;重启后,双击pycharm图标就能打开了&#xf…

[lesson17]对象的构造(上)

对象的构造(上) 对象的初始化 从程序设计的角度,对象只是变量,因此: 在栈上常见对象时,成员变量初始为随机值在堆上创建对象时,成员变量初始为随机值在静态存储区创建对象时,成员变量初始为0值 生活中的对…

fast_bev 学习笔记

目录 一. 简述二. 输入输出三. github资源四. 复现推理过程4.1 cuda tensorrt 版 训练修改图像数 一. 简述 原文:Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline FAST BEV是一种高性能、快速推理和部署友好的解决方案,专为自动驾驶车载芯片设计…

langchain 使用本地通义千问

langchian 使用已经下载到本地的模型,我们使用通义千问 显存:24G 模型:qwen1.5-7B-Chat,qwen-7B-Chat 先使用 qwen-7B-Chat,会报错用不了: 看了下是不支持这中模型,但看列表中有一个 Qwen 字样…

三种常见webshell工具的流量特征分析

又来跟师傅们分享小技巧了,这次简单介绍一下三种常见的webshell流量分析,希望能对参加HW蓝队的师傅们有所帮助。 什么是webshell webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、…

基于SSM+Jsp+Mysql的快递管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

如何将PHP的Webman框架打包成二进制文件运行

看了看webman的官方文档,发现居然还能打包为二进制,这样太厉害了吧! 先执行这个 composer require webman/console ^1.2.24 安装这个console的包,然后 执行 php webman build:bin 8.1 结果谁想到它报错提示: 好…

Spring Boot 切面的一种的测试方法,java中级开发面试

void afterReturnName() { Assertions.assertEquals(studentController.getNameById(123L).getName(), "测试姓名Yz");} } 但往往切面中的逻辑并非这么简单,在实际的测试中其实我们也完成没有必要关心在切面中到底发生了什么(发生了什么应该在…

49 样式迁移【李沐动手学深度学习v2课程笔记】

1. 样式迁移(Style Transfer) 计算机视觉的应用之一,将样式图片中的样式(比如油画风格等)迁移到内容图片(比如实拍的图片)上,得到合成图片 可以理解成为一个滤镜,但相对于滤镜来讲…

leetcode之35 搜索插入位置

文章目录 每日碎碎念一、题目要求及测试点35 搜索插入位置测试点提示 二、题解自己上手正经题解暴力法二分法之优化了一下逻辑 三、总结 每日碎碎念 苦痛生活继续 hello LeetCode,今天还是数组二分专项刷题… 一、题目要求及测试点 35 搜索插入位置 给定一个排序…

力扣HOT100 - 239. 滑动窗口最大值

解题思路&#xff1a; class Solution {public int[] maxSlidingWindow(int[] nums, int k) {if(nums.length 0 || k 0) return new int[0];Deque<Integer> deque new LinkedList<>();int[] res new int[nums.length - k 1];// 未形成窗口for(int i 0; i <…

Spring boot 入门 ---(一),2024年最新java进阶训练营

spring-snapshots http://repo.spring.io/snapshot spring-milestones http://repo.spring.io/milestone spring-boot-starter-parent是使用Spring Boot的一种不错的方式&#xff0c;但它 并不总是最合适的。有时你可能需要继承一个不同的父POM&#xff0c;或只是不喜欢我…

JRT高效率开发

得益于前期的基础投入&#xff0c;借助代码生成的加持&#xff0c;本来计划用一周实现质控物维护界面&#xff0c;实际用来四小时左右完成质控物维护主体&#xff0c;效率大大超过预期。 JRT从设计之初就是为了证明Spring打包模式不适合软件服务模式&#xff0c;觉得Spring打包…

c# list/task/ dictionary/委托简单到高级使用

在 C# 编程中&#xff0c;List、Task、Dictionary 和委托&#xff08;Delegates&#xff09;是常用的数据结构和功能特性&#xff0c;它们在处理集合、异步编程、键值对存储以及事件和回调实现中扮演着重要角色。 C# List List<T> 是 C# 中的一个泛型集合&#xff0c;它…

MySQL基础(下)

函数 函数 是指一段可以直接被另一段程序调用的程序或代码 字符串函数 SELECT 函数(参数); --concat 连接 select concat(Hello , MySQL);--lower 将所有大写转换为小写 select lower(Hello); --upper 将所有小写转换为大写 select upper(Hello);--lpad 左填充 select lpad(0…

从零开始学习的ai教程视频,如何入手?

个人认为小白想零基础学习ai应该从理论和实操两个方面入手。理论是支撑实践的前提&#xff0c;只有以一种全局观角度了解ai才能实现从熟练使用ai到有自我意识的用ai创作。 接下来将会简单介绍一些理论免费学习网站和软件&#xff08;一笔带过&#xff0c;不重点&#xff09;&a…

刷题之动态规划-回文串

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;开始刷动态规划的回文串类型相关的题目 动态规划5个步骤 状态表示 &#xff1a;dp数组中每一个下标对应值的含义是什么>dp[i]表示什么状态转移方程&#xff1a; dp[i] 等于什么1 和 2 是动态规划的核心步骤&#xff0c;…

OneForAll安装使用

OneForAll简介 OneForAll是一款功能强大的子域收集工具 原项目地址&#xff1a;GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具 gitee项目地址&#xff1a;OneForAll: OneForAll是一款功能强大的子域收集工具 # 安装Python Windows系统安装python参…