Linux中make和makefile

make与makefile

  • 简单介绍
  • 常见用法
    • 符号替代
    • 自动寻找
    • 设置变量
    • 取消打印提示

简单介绍

make是Linux中一个命令,与之匹配的是makefile,makefile是一个文件。make会根据makefile中的内容完成对应的工作

创建一个名为makefile的文件
vim打开makefile
第一行是依赖关系,my.exe 是我们要生成的文件,后面是依赖文件列表,依赖文件列表可以有很多个
第二行是依赖方法,就是我们要通过什么方式获得我们要生成的方式,依赖方法开头必须是Tab键,不能是空格(依赖方法可以不止一个,依赖关系下的所有命令都会执行,可以通过这样一次进行多步操作
第三行的.PHONY代表后面的命令总是被执行
第四行依然是依赖关系,clean比较特殊,依赖文件列表可以为空
第五行是依赖方法
在这里插入图片描述

如果我们单纯执行make命令,默认执行makefile中的第一个依赖关系的以来方法,如果我们把clean的放第一行,那么默认就会执行clean
在这里插入图片描述

如果没有放在第一行,那么就要make 依赖关系的目标文件,比如,如果my.exe放在下面,如果要形成my.exe,就要make my.exe。
在这里插入图片描述

当make形成可执行程序以后,就无法再次make,这是因为我们的文件已经是最新的了,如果再次编译很浪费时间,小程序还好,不明显,如果是很大的项目,编译就会花很久的时间。
在这里插入图片描述

通过stat可以查看文件acm时间,其中makefile就是对比Modify的时间,如果可执行程序的时间是最新的,就无法进行make。
PHONY修饰的符号总是可以执行,就是不去对比时间,所有才可以一直执行
在这里插入图片描述

常见用法

符号替代

$@代指要生成的目标文件
$^代指依赖文件
@代表目标文件,^代表依赖文件,$表示提取文件
在这里插入图片描述

自动寻找

同样可以这样写,如果发现没有code.o会自动向下寻找,发现所依赖的.s文件也没有,那么就会递归式地向下寻找,一直到找到为止,否则就报错。但是我们要形成地目标文件要在第一行,因为默认形成第一行地目标文件。
在这里插入图片描述

设置变量

设置变量为我们的目标文件和依赖文件
用$符号取出我们的变量取代的文件
同样可以生成我们的目标文件
在这里插入图片描述

取消打印提示

输入命令会提示,在每一条依赖方法前面加@就不会再进行提示了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

调试以及发布npm组件

开发原因: 由于公司自己的封装到npm的组件有点问题,负责人由在忙其他,就由我去负责改改,中途出了不少问题,记录一下。 一、下载源码 第一步肯定是去git上把组件的源码下载下来,这一步没什么好说&#xf…

好的问卷设计标准:确保数据质量与准确性的关键要素

问卷的主要由三个部分组成:问卷说明、问卷主题、问卷结束。而这三个部分又包含了很多因素,比如问卷主题、问卷标题、问卷题目、问卷调查对象等。制作问卷不仅仅是简单的问题罗列,然后进行发放。不同质量的调查问卷会反馈出不一样的效果&#…

Vue.js设计与实现(霍春阳)

Vue.js设计与实现 (霍春阳) 电子版获取链接:Vue.js设计与实现(霍春阳) 编辑推荐 适读人群 :1.对Vue.js 2/3具有上手经验,且希望进一步理解Vue.js框架设计原理的开发人员; 2.没有使用过Vue.js,但对Vue.js框架设计感兴趣…

2024年美赛E题:财产保险的可持续性 Sustainability of Property Insurance 思路模型代码解析

2024年美赛E题:财产保险的可持续性 Sustainability of Property Insurance 思路模型代码解析 【点击最下方群名片,加入群聊,获取更多思路与代码哦~】 问题翻译 极端天气事件对房产所有者和保险公司已经成为一场危机。近年来,世界…

Blender教程(基础)-面的切割-10

快捷键K切割,菜单选项切割. 一、随意切割 物体在编辑模式下,按键盘K建切割物体。 二、中点切割 先按K键,再按shift键,会自动吸附到每条边的中点进行切割。 三、取消吸附 切割时会自动吸附到顶点或边 关闭快速吸附 按K键再按…

26条prompt规则应用于大模型

1、引入动机 llm大模型在回答一些问题上表现出了惊人的能力,例如数学逻辑推理,代码生成,问题答复等。提词工程是和大预言模型交流的一门艺术。 大模型的返回结合和用户的指令和输入直接相关prompts是用户和大模型沟通的一种编码方式 一般地…

在低代码平台上实现精益软件开发:提高效率与灵活性的关键实践

什么是精益软件开发? 精益软件开发是一种敏捷的软件开发框架。它基于最小化浪费和最大化价值的原则。该框架基于最小可行产品策略运行,该策略强调交付具有基本基本功能的产品,然后根据收到的反馈进行迭代以即兴发挥并提供卓越。 精益软件开发…

2阶段提交_3阶段提交(phase-commit)

1. 2PC(两阶段提交) 如上所示是2阶段提交的一个过程,可为什么要进行两阶段提交呢?这里主要来说是将操作事务能力和提交、回滚事务能力分开来做成2阶段,如果不分开会造成什么后果呢: 如果单纯 A 向 B 发送一个请求就以…

由于找不到d3dcompiler43.dll无法继续执行程序的解决方法

在日常使用电脑的过程中,我们常常会遭遇一些突发的技术问题,其中之一便是可能会遇到系统提示找不到d3dcompiler43.dll文件的情况。这一特定的动态链接库文件(dll)对于许多应用程序的正常运行至关重要,尤其是在涉及到图…

PPT母版页码设置

PPT母版页码设置 一、需求介绍二、达到效果三、具体操作1. 插入页码2. 设置起始页码为03. 进入母版编辑页面4. 内容格式调整5. 删去最后一个板式的三个模块信息6. 尾页处理7. 最终效果 一、需求介绍 PPT的母版可以设定PPT的基调,且在非母版页面不会误改PPT中的固定…

【笔记】Android 常用编译模块和输出产物路径

模块&产物路径 具体编译到软件的路径要看编译规则的分区,代码中模块编译输出的产物基本对应。 Android 代码模块 编译产物路径设备adb路径Comment 模块device/mediatek/system/common/ 资源overlay/telephony/frameworks/base/core 文件举例res/res/values-m…

大专考试,搜题最准的软件?搜题神器推荐,助力大学生学业! #其他#知识分享

下面,我将为您介绍几款备受大学生欢迎的搜题软件,希望能够帮助您更好地完成学业和提升学习效果。 1.Quizlet Quizlet是一款学习卡片和题库应用,可用于各种学科的学习和复习。通过Quizlet,学生可以创建自己的学习卡片&#xff0c…

Leetcode的AC指南 —— 栈与队列 :150. 逆波兰表达式求值

摘要: **Leetcode的AC指南 —— 栈与队列 :150. 逆波兰表达式求值 **。题目介绍:给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 文章目录 一、题目…

Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透

概述 Redis 的缓存异常问题,除了数据不一致问题外,还会面临其他三个问题,分别是缓存雪崩、缓存击穿、缓存穿透。这三个问题,一旦发生,会导致大量的请求积压到数据库。若并发量很大,就会导致数据库宕机或故…

TQ15EG开发板教程:开发板Vivado硬件设置

1,串口的配置 PS端有2个串口,在BANK500, 1.8V IO电平 管脚名称 电平 说明 UART0 RX MIO18 1.8V MPSOC方向看 TX MIO19 1.8V UART1 RX MIO21 1.8V TX MIO20 1.8V 2,QSPI的配置 采用2片MT25QU256 拼接成8bit的QSPI存储系统。采用1.8V…

安卓SurfaceTexture中updateTexImage使用及源码分析

文章目录 引言updateTexImage 简单使用SurfaceTexture 初始化相关源码分析Surface 绘制流程源码分析createBufferQueue 源码分析SurfaceTexture 之 updateTexImage 源码分析结尾 本文首发地址 https://h89.cn/archives/140.html 最新更新地址 https://gitee.com/chenjim/chenji…

中国象棋基础

帅(将)的运用原则: (1)帅走直线,前进后退均可 (2)一次只能走一格 (3)活动范围在“九宫”之内 (4)可行处可吃敌子 (5&…

React实例之完善布局菜单(一)

今天我们来用所学的知识来做一个布局菜单的组件, 针对这个组件我之前写过一个教程 React之布局菜单-CSDN博客,那个呢比较基础,这节课算是对那个教程的一个扩展和补充。这个实例讲完,这个系列就算告一段落了。先看效果 这个教程要求对React知识…

算法学习——华为机考题库6(HJ36 - HJ40)

算法学习——华为机考题库6(HJ36 - HJ40) HJ36 字符串加密 描述 有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中…

DDD技术方案落地实践

DDD技术方案落地实践 引言 从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目。对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基本比较成…