Makefile学习⑧:Makefile中通用部分做公共头文件

news2024/9/20 15:06:26

Makefile学习⑧:Makefile中通用部分做公共头文件

创建2个文件夹Demo1和Demo2,2个文件夹中的文件完全一样,但是命名不一样。
博主创建的如下,内容沿用前几章的函数文件。
在这里插入图片描述
这两个Makefile中的内容除了目标文件名和依赖文件名不一致,其他的也完全一样。
在这里插入图片描述
可以看到编译完成后除了生成的文件名不一样,过程也完全一样。
在这里插入图片描述
通过如上述步骤我们可以发现对于文件结构和编译过程差不多的文件存在着公共部分。
在这里插入图片描述
因此我们可以通过提取公共部分,新建一个Makefile文件再将公共Makefile分别引入各子文件,既能够使得整个项目的Makefile结构得到优化。
我们新建了一个Demo3,在该文件夹中仅存放新建的公共Makefile文件,方便其他文件进行引用,在其他项目中引用公共Makefile时,需要通过include命令+路径进行调用,如下。
在这里插入图片描述
进行公共Makefile引用后,我们再回到Demo1和Demo2中进行分别make,查看是否成功,结果如下。
在这里插入图片描述
使用之前的系统变量进行替换优化公共Makefile的语法结构,优化后如下:
在这里插入图片描述

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

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

相关文章

轻松实现一个Python+Selenium的自动化测试框架

首先你得知道什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE&#xff…

知识抽取-实体及关系抽取

信息抽取的三个最重要,最受关注的子任务: 实体抽取 命名实体识别,包括实体检测(find)和分类(classify) 关系抽取。 通常我们所述的三元组抽取, 一个谓词(predicate)带2个形参(argum…

MySQL学习记录(9)存储引擎

文章目录6、InnoDB存储引擎6.1、逻辑存储结构6.2、架构6.2.1、概述6.2.2、内存结构6.2.3、磁盘结构6.2.4、后台线程6.3、事务原理6.3.1、事务基础6.3.2、redo log日志6.3.3、undo log日志6.4、MVCC6.4.1、基本概念6.4.2、记录中隐藏字段6.4.3、undo log日志6.4.4、readview6.4.…

算法基础(二):数组知识点及题型讲解

算法基础(二):数组知识点及题型讲解1 数组定义2 Python数组常用操作2.1 创建数组2.2 添加元素2.3 访问元素2.4 更新元素2.5 删除元素2.6 获取数组长度2.7 遍历数组2.8 查找某个元素2.9 数组排序3 力扣题目训练一些算法基础知识点和leetcode题…

汇编语言1基础知识

机器语言 机器语言是机器指令的集合,即计算机可以执行的指令。 机器指令由一连串二进制数字构成,计算机中用高低电平表示。高电平为1,低电平为0。 早期通过在纸带上打孔输入计算机运算。打孔为1,不打孔为0。 上图出自剧版三体第…

c语言tips-【gcc详细介绍】

0. 什么是gcc GCC 原名为 GNU C语言编译器(GNU C Compiler)GCC(GNU Compiler Collection,GNU编译器套件)是由 GNU 开发的编程语言译器。 GNU编译器套件包括C、C、 Objective-C、 Java、 Ada 和 Go语言前端&#xff0c…

【GPLT 二阶题目集】L2-009 抢红包

没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。 输入格式: 输出格式: 按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位&a…

ISIS与OSPF的双点双向简介与配置,双点双向中存在的问题(次优路径与环路风险)

2.4.0 ISIS与OSPF的双点双向简介与配置,双点双向中存在的问题 关于双点双向的相关概念 单点双向 网络中连接外网的设备称为出口网关设备 ,通常小型网络中仅有一台出口网关设备。 网络中仅存在一台出口设备与外网设备对接时相互引入对端的路由&#xf…

学长教你学C-day12-C语言函数

不知不觉,小刘已经讲了十一天C语言了,语法、数据结构、数组、结构体、指针的概念和使用大家都已经了然于心,但是想用C语言开发一个有用的程序还需要一个很关键的部分,那就是编写“函数”。 “函数这个名字大家肯定都不陌生&#x…

ZooKeeper架构篇 - 分布式协调服务ZooKeeper

前言 本文基于 ZooKeeper 3.8.0 版本。 ZooKeeper集群搭建 准备四台服务器,IP地址分别为10.211.55.6、10.211.55.7、10.211.55.8、10.211.55.9 下载并解压 ZooKeeper 文件,四台服务器进入 data 目录分别创建一个 myid 文件,文件内容分别为…

vue全家桶(二)组件化开发

vue全家桶(二)组件化开发1.组件化开发思想2.组件注册2.1局部注册2.2全局注册Vue.component1.注意事项:2.组件的命名方式3.组件间的交互3.1父组件向子组件传值-props属性值类型1.组件化开发思想 标准分治重用组合 2.组件注册 vue 注册组件的…

《动手学深度学习》笔记一 ------机器学习中的基础概念

写在前面:本文按照书中的脉络做的笔记,包含概念的定义、自己的理解以及阅读时的小思考。感受:深度学习很奥妙,很有趣! 1.2机器学习中的关键组件 可以⽤来学习的数据(data);如何转换…

直接在Notepad++中运行GO语言

建议先阅读并实践(配置notepad支持go语言语法着色(高亮)):https://mp.csdn.net/mp_blog/creation/editor/new/1287591911.Windows上安装Go语言开发包参考链接:http://c.biancheng.net/view/3992.html1.1.下载Go语言开发包可以在Go语言官网 &a…

大聪明教你学Java | 深入浅出聊 Mybatis 的一级缓存和二级缓存

前言 🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言&#x1f4…

【头歌】函数的递归调用

第1关:编写递归函数方法求x的n次方 (要求n>0)任务描述本关任务:编写递归函数方法求x的n次方 (要求n>0)。相关知识递归法在定义一个过程或函数时出现调用本过程或本函数的成分,称之为递归。若调用自身,称之为直接递归。若过程…

论文笔记:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS

ICLR 2017 1 abstract和intro部分 问题的setting 在图上进行节点分类,其中只有一部分节点有label ——>基于图的半监督学习传统的方法是使用平滑正则 其中L0表示图中有监督部分的lossf是神经网络,ΔD-A表示unnormalized的拉普拉斯矩阵 这种方…

Blender 物理属性 (五)动态绘画

文章目录动态绘画简介.以小船划过水面产生波纹为例.波浪属性.动态绘画简介. 1 动态绘画可以让一个物体在另一个物体上绘制东西 2 动态绘画至少需要两个物体,一个作为画布,另一个作为笔刷 3 两个物体必须接触才有效果 以小船划过水面产生波纹为例. 1 为…

【数据结构】浅识泛型

目录 1、包装类 1.1、基本数据类型和其包装类 1.2、装箱和拆箱 1.2.1、装箱 1.2.2、拆箱 1.2.3、面试题 2、泛型的概念 3、引出泛型 3.1、语法 4、泛型类的使用 4.1、语法 5、裸类型(Raw Type) 6、泛型是如何编译的 6.1、擦除机制 6.2、不…

Springboot+ssm371的在线考试系统maven idea

摘 要 I 1 绪论 1 1.1研究背景 1 1.2研究现状 1 1.3研究内容 2 2 系统关键技术 3 springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是…

DPO4104示波器

18320918653 DPO4104 详细说明: 美国泰克Tektronix DPO4104数字荧光示波器主要产品特色:Inspector智能存储管理2.串行触发和分析3.10.4”更大的显示器, 前面板上USB和CompactFlash端口, 及TekVPI?改善的探头接口, 更强的操作渐 变性商品名称 &#x…