Makefile

news/2024/11/23 22:19:49/

目录

  • 1、什么是Makefile
  • 2、Makefile文件命名和规则
  • 3、工作原理
  • 4、变量
  • 5 模式匹配
  • 6 函数

橙色

1、什么是Makefile

在这里插入图片描述

2、Makefile文件命名和规则

在这里插入图片描述

可以看到,lession07目录下有如下的几个文件,我在该目录下先创建Makefile目录,并在其中写入如下图的语句
在这里插入图片描述
在这里插入图片描述

保存后返回,并输入make指令,可以看到,就自动执行了命令并生成了可执行文件app

上面的这个makefile也可以这样写:

在这里插入图片描述

这样也能达到同样的效果,虽然更麻烦,但效率更高。试想你改变了add.c文件中的内容,如果你采用该图内的指令来生成可执行文件的话,那么add.c、sub.c、div.c、mult.c四个文件都要重新编译一遍。
在这里插入图片描述

如果你采用下面这张图的话,则仅仅需要把add.c重新编译一遍即可,无疑可以提升效率。
在这里插入图片描述

3、工作原理

在这里插入图片描述

4、变量

在这里插入图片描述

根据上图,可以把之前的代码简化如下:
在这里插入图片描述

5 模式匹配

在这里插入图片描述

根据上图,也可以再次简化代码:
在这里插入图片描述

6 函数

示例中,可以返回当前目录下的所有后缀名为.c的文件和当前文件下的sub目录下的所有后缀名为.c的文件。
在这里插入图片描述

下图的这个示例就很清楚了
在这里插入图片描述

src变量的值为第二行的内容,objs变量的值则是add.o、sub.o、main.o、mult.o、div.o
在这里插入图片描述

同样是可以正常执行的

最后还可以加入一条规则,把所有生成的.o文件全部删掉。你可以通过make把整个文件夹执行一遍,也可以通过make clean单独执行makefile文件里的clean函数。
在这里插入图片描述

但因为clean没有依赖,所以目标总是比依赖更新。所以当同一目录下存在了一个clean文件夹时,就没办法调用clean了,所以要在clean上面再添加一行:
在这里插入图片描述
在这里插入图片描述


📝我的个人主页
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️今天你做别人不想做的事,明天你就能做别人做不到的事♐



http://www.ppmy.cn/news/53591.html

相关文章

JVM内存模型的演变

1,背景 class文件、类的加载过程。我们的class文件就要进入到JVM内存里,我们沿着经典的JDK1.6,JDK1.7,JDK1.8看看在其中都经历了哪些改变 概念的统一: 方法区: 方法区可以看作是JVM逻辑上管理一片区域的…

【数据库】增删改查(进阶)

目录 1、数据库的约束类型 1.1、not noll约束 1.2、unique(唯一性约束) 1.3、default默认值约束 1.4、primary key(主键约束) 1.4.1、自增主键(关键字auto_increment) 1.5、foreign key (外…

C语言函数大全-- p 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- p 开头的函数 1. perror 1.1 函数说明 函数声明函数功能void perror(const char *s);用于将当前错误码对应的错误信息打印到标准输出设备(通常是终端)。 参数: s : 用于描述错误类型或…

跟着我学习 AI丨初识 AI

人工智能(AI)是一种模拟人类思维和行为的计算机技术,通过学习、推理和自我修正等方式,使机器能够模拟人类智能,并具有一定的自主决策能力。AI 可以被用于解决各种难题,如自动化、机器人、自动驾驶、语音识别…

14.基于双层优化的电动汽车优化调度研究(文章复现)

说明书 MATLAB代码:基于双层优化的电动汽车优化调度研究 关键词:双层优化 选址定容 输配协同 时空优化 参考文档:《考虑大规模电动汽车接入电网的双层优化调度策略_胡文平》中文版 《A bi-layer optimization based temporal and sp…

史上最烂 spring aop 原理分析

盗引中篇spring aop spring aop: jdk 动态代理和 cglib 动态代理的特点、区别、使用方式、原理及各自对反射的优化、二者在 spring 中的统一、通知顺序、从 Aspect 到 Advisior、静态通知调用、动态通知调用。 版本 jdk:8spring:5.3.20spring boot&…

《python爬虫练习2》爬取网站表情包

获取网站表情包 运行环境: #环境:win10 import requests #发送请求 from lxml import etree #获取html主页树状代码 import os #创建本地文件夹用来存储图片1.分析: 目标网址:https://www.runoob.com/ 首先想要获取什么就从哪…

大数据专业好找工作么

现在,在数字化转型的推动下,越来越多的企业意识到大数据的魅力,并不断在这个领域投入资金,Python大数据开发相关人才也备受青睐! 学Python之前:这玩意真有传说中那么好么? 学Python之后&#…