波奇学Linux:make和Makefile

news2024/11/18 23:25:41

make和Makefile自动化构建并能决定源文件调用顺序,同时不必再写gcc命令

第一行依赖关系,第二行是tab键开头,是依赖方法

依赖关系:目标文件:依赖文件。

依赖方法:目标文件和依赖文件间的关系。

如果只有一条依赖那么依赖关系似乎作用不大,因为依赖关键字是什么make 都会执行指令,当有多条依赖时,依赖关系可以决定依赖的调用顺序。

运行的逻辑:从目标文件test.o寻找test.i依赖文件,再根据第二个依赖关系,寻找test.i 使得代码的由下往上运行,通过依赖关系来决定代码调用顺序。

执行make指令,能找到Makefile文件夹运行指令 

 

 clean:依赖关系为空,删除可执行文件,一般习惯上还用.PHONY修饰。

 

 

make显式调用clean

make + 目标文件:指定执行依赖,make指令由上往下执行到递归式完成一个依赖关系为止,不会执行clean依赖,所以必须显式调用clean

 make不能反复调用

当文件没有更新时,那么不会再编译,实现方法,比较源文件和可执行文件时间,如果源文件最近修改时间晚于可执行文件,不需要重新编译,如果是先于,需要重新编译。

文件的时间

stat test

 

 access:最近访问时间 Modify:最近修改文件内容 Change:最近文件属性(权限,尺寸)

当文件内容/属性被修改时文件的access也会被修改。access会被修改但是change或modify多次后才会显示出变化。一般通过Modify的时间决定是否重新编译。

touch文件可以手动更新到当前时间。完成多次make

 伪目标.PHONY关键字实现依赖能反复执行(更常放在clean处)

 

 

 特殊字符

用 $^依赖文件 $@表示目标文件 @在指令前能取消回显

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

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

相关文章

es下载历史的tar文件

第一步进入官网找到历史版本 第二步复制历史版本名称组合成下面的链接 直接get访问下载。如下链接所示只需要修改7.3.0这个版本号 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz

ChatGLM使用记录

ChatGLM ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存&#xff0…

opencv实战--角度测量和二维码条形码识别

文章目录 前言一、鼠标点击的角度测量二、二维码条形码识别 前言 一、鼠标点击的角度测量 首先导入一个带有角度的照片 然后下面的代码注册了一个鼠标按下的回调函数, 还有一个点的数列,鼠标事件为按下的时候就记录点,并画出点,…

uniapp微信小程序上传体积压缩包过大分包操作和上传时遇到代码质量未通过问题

1:首先我们得从项目最初阶段就得考虑项目是否要进行分包操作,如果得分包,我们应该创建一个与pages同级的文件夹,命名可以随意 2:第二部我们将需要分包的文件和页面放到分包文件夹里面subpage,这里我们得注意&#xff…

Python基础语法第三章之顺序循环条件

目录 一、顺序语句 二、条件语句 2.1什么是条件语句 2.2语法格式 2.2.1 if 2.2.2if - else 2.2.3if - elif - else 2.3缩进和代码块 2.4闰年的判断练习 2.5空语句 pass 三、循环语句 3.1while 循环 3.1.1代码示例练习 3.2 for 循环 ​3.3 continue 3.4 break 一…

给LLM装上知识:从LLM+LangChain的本地知识库问答到LLM与知识图谱的结合

前言 过去半年,随着ChatGPT的火爆,直接带火了整个LLM这个方向,然LLM毕竟更多是基于过去的经验数据预训练而来,没法获取最新的知识,以及各企业私有的知识 为了获取最新的知识,ChatGPT plus版集成了bing搜…

linux常用工具介绍

文章目录 前言目录文件查看ls1、查看详细信息(文件大小用K、M等显示)2、按照文件创建时间排序(常在查看日志时使用) sort1、排序数字 df 、du1、查看目录的大小2、查看目录 从大到小排序 显示前n个3、查看磁盘使用情况 tailf一些目…

银河麒麟高级服务器操作系统V10安装mysql数据库

一、安装前 1.检查是否已经安装mysql rpm -qa | grep mysql2.将查询出的包卸载掉 rpm -e --nodeps 文件名3.将/usr/lib64/libLLVM-7.so删除 rm -rf /usr/lib64/libLLVM-7.so4.检查删除结果 rpm -qa | grep mysql5.搜索残余文件 whereis mysql6.删除残余文件 rm -rf /usr/b…

怎么用二维码做企业介绍?企业宣传二维码2种制作方法

怎么做一个企业推广二维码呢?现在制作二维码来做宣传推广是常用的一种方式,一般需要包含企业介绍、工作环境、产品简介、宣传视频、公司地址等等方面内容,那么企业介绍二维码该如何制作?下面给大家分享一下使用二维码编辑器&#…

EventBus详解

目录 1 EventBus 简介简介角色关系图四种线程模型 2.EventBus使用步骤添加依赖注册解注册创建消息类发送消息接收消息粘性事件发送消息 使用postStick()接受消息 3 EventBus做通信优点4 源码getDefault()register()findSubscriberMethods方法findUsingReflection方法findUsingR…

前端部署项目,经常会出现下载完 node 或者 npm 运行时候发现,提示找不到

1. 首先要在下载时候选择要下载的路径,不能下载完后,再拖拽到其他文件夹,那样就会因为下载路径和当前路径不一致,导致找不到相关变量。 2. 所以一开始就要在下载时候确定要存放的路径,然后如果运行报错,就…

【Java基础教程】(十三)面向对象篇 · 第七讲:继承性详解——继承概念及其限制,方法覆写和属性覆盖,关键字super的魔力~

Java基础教程之面向对象 第七讲 本节学习目标1️⃣ 继承性1.1 继承的限制 2️⃣ 覆写2.1 方法的覆写2.2 属性的覆盖2.3 关键字 this与 super的区别 3️⃣ 继承案例3.1 开发数组的父类3.2 开发排序类3.3 开发反转类 🌾 总结 本节学习目标 掌握继承性的主要作用、实…

git指令记录

参考博客(侵权删):关于Git这一篇就够了_17岁boy想当攻城狮的博客-CSDN博客 Git工作区介绍_git 工作区_xyzso1z的博客-CSDN博客 git commit 命令详解_gitcommit_辰风沐阳的博客-CSDN博客 本博客只作为自己的学习记录,无商业用途&…

计算机存储设备

缓存为啥比内存快 内存使用 DRAM 来存储数据的、也就是动态随机存储器。内部使用 MOS 和一个电容来存储。 需要不停地给它刷新、保持它的状态、要是不刷新、数据就丢掉了、所以叫动态 、DRAM 缓存使用 SRAM 来存储数据、使用多个晶体管(比如6个)就是为了存储1比特 内存编码…

【python】python全国数据人均消费数据分析(代码+报告+数据)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 &#x…

bio、nio、aio、io多路复用

BIO-同步阻塞IO NIO-同步非阻塞IO 不断的重复发起IO系统调用,这种不断的轮询,将会不断地询问内核,这将占用大量的 CPU 时间,系统资源利用率较低 IO多路复用模型-异步阻塞IO IO多路复用模型,就是通过一种新的系统调用&a…

前端开发者都应知道的 网站

1、ransform.tools 地址:transform.tools/ transform.tools 是一个网站,它可以让你转换几乎所有的东西,比如将HTML转换为JSX,JavaScript转换为JSON,CSS转换为JS对象等等。当我需要转换任何东西时,它真的帮…

Java反射机制概述

Java反射的概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一…

PyTorch: 池化-线性-激活函数层

文章和代码已经归档至【Github仓库:https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 pytorch教程 也可获取。 文章目录 nn网络层-池化-线性-激活函数层池化层最大池化:nn.MaxPool2d()nn.AvgPool2d()nn.MaxUnpool2d()线性层激…

腾讯云2核4G服务器性能如何?能安装几个网站?

腾讯云2核4G服务器能安装多少个网站?2核4g配置能承载多少个网站?一台2核4G服务器可以安装多少个网站?阿腾云2核4G5M带宽服务器目前安装了14个网站,从技术角度是没有限制的,只要云服务器性能够用,想安装几个…