Linux下的系统编程——makefile入门(四)
前言:
或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。
一、makefile: 管理项目。
设置文件add.c div1.c sub.c hello.c

命名:makefile Makefile --- make 命令
1. 1 个规则:
目标:依赖条件
(一个tab缩进)命令
makefile中的规则


(1)目标的时间必须晚于依赖条件的时间,否则,更新目标
(2)依赖条件如果不存在,找寻新的规则去产生依赖条件。
ALL:指定 makefile 的终极目标。
(目的是确定最终退出的目标)

2. 2 个函数:
(1)src = $(wildcard ./*.c)
匹配当前工作目录下的所有.c 文件。将文件名组成列表,赋值给变量 src。 src = add.c sub.c div1.c
(2)obj = $(patsubst %.c, %.o, $(src))
将参数3中,包含参数1的部分,替换为参数2。 obj = add.o sub.o div1.o


clean: (没有依赖)
-rm -rf $(obj) a.out “-”:作用是,删除不存在文件时,不报错。顺序执行结束。


3. 3 个自动变量:
(1)$@
在规则的命令中,表示规则中的目标。
(2)$^
在规则的命令中,表示所有依赖条件。
(3)$<
在规则的命令中,表示第一个依赖条件。如果将该变量应用在模式规则中,它可将
依赖条件列表中的依赖依次取出,套用模式规则。


4.模式规则:
%.o:%.c
gcc -c $< -o %@


(1)静态模式规则:
$(obj):%.o:%.c
gcc -c $< -o %@


(2)伪目标:
.PHONY: clean ALL

参数:
-n:模拟执行make、make clean 命令。
-f:指定文件执行 make 命令。 xxxx.mk
变化1:


变化2:


相关文章:
Linux下的系统编程——makefile入门(四)
前言: 或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专…...
Mybatis的综合案例-学生信息查询系统 用于校验是否真正学习掌握了动态SQL
Mybatis的综合案例-学生信息查询系统 需求一:当用户输入的学生姓名不为空,则只根据学生信息进行查询; 当用户输入的学生姓名为空,且专业不为空,那么就根据学生专业进行学生的查询 需求二:查询所有id值小于5的学生信息…...
力扣:70. 爬楼梯(Python3)
题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客…...
陕西广电 HG6341C FiberHome烽火 光猫获取超级密码 改桥接模式 提升网速
光猫默认的路由模式实测在100M宽带下只能跑到60M左右,只有改成桥接模式才能跑满,不损失性能。但是改桥接需要给运营商打电话,有的时候不想麻烦他们,这时获取超级密码进行更改就是一个不错的选择了 分析 之前写了一篇HGU B2 光猫的…...
无涯教程-PHP - 移除的扩展
以下扩展已从PHP 7开始删除- eregmssqlmysqlsybase_ct 以下SAPI已从PHP 7开始删除- aolserverapacheapache_hooksapache2filtercaudiumcontinuityisapimilternsapiphttpdpi3webroxenthttpdtuxwebjames PHP - 移除的扩展 - 无涯教程网无涯教程网提供以下扩展已从PHP 7开始删除…...
笔记:transformer系列
1、和其他网络的比较 自注意力机制适合处理长文本,并行度好,在GPU上,CNN和Self-attention性能差不多,在TPU(Tensor Processing Uni)效果更好。 总结: 自注意力池化层将当做key,value,query来…...
Mysql socket连接测试
配置如下: socket /data/mysql/data/mysql.sock //套接字文件 在数据库没有任何连接的情况下,可以看到3306端口和socket端口都在监听 [mysqlt3-dtpoc-dtpoc-web04 bin]$ netstat -an | grep -i 3306 tcp 0 0 0.0.0.0:3306 0.…...
探究分布式操作系统的本质
探究分布式操作系统的本质 有一位网友问,分布式操作系统的本质是什么,今天就来说说这个话题。 首先,我们需要明确什么是分布式操作系统。 从大范围来理解,分布式操作系统是传统单机操作系统的延伸,可以看作是在多台独…...
opencv-dnn
# utils_words.txt 标签文件 import osimage_types (".jpg", ".jpeg", ".png", ".bmp", ".tif", ".tiff")def list_images(basePath, containsNone):# return the set of files that are validreturn list_file…...
如何选择合适的开源许可证?
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
【前端】深入解析CSS:选择器、显示模式、背景属性和特征剖析
目录 一、前言二、CSS的复合选择器1、后代选择器①、语法②、注意事项 2、子选择器①、语法②、注意事项 3、并集选择器①、语法②、注意事项 4、链接伪类选择器①、语法②、注意事项 三、CSS元素显示模式转换1、转换为块元素display:block2、转换为行内元素display:inline3、转…...
算法训练营第三十四天(8.23)| 动态规划Part04:01背包
目录 Leecode 1049.最后一块石头的重量II Leecode 494.目标和 Leecode 474.一和零 Leecode 1049.最后一块石头的重量II 题目地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目类型:01背包 class Solution { public:int…...
【python】tkinter使用多进程打包成exe后multiprocessing无法关闭对应进程
这是由于multiprocessing模块在Windows操作系统下使用fork方法创建子进程时会导致打包成exe后无法正常运行的问题。 可以尝试使用freeze_support函数来解决这个问题。freeze_support函数是在Windows操作系统下用于支持multiprocessing模块的函数。 下面是一个示例代码&#x…...
Redis工具类(缓存操作,Object转换成JSON数据)
依赖spring-data-redis-2.4.1.jar Component Data public class RedisUtils {Autowiredprivate RedisTemplate<String, Object> redisTemplate;Resource(name "stringRedisTemplate")private ValueOperations<String, String> valueOperations;/*** 默…...
Linux 下 Java Socket 编程报 java.net.Exception:Permission denied (权限不足)
本人用Linux部署springboot项目时遇见这个错误,原因很简单,就是端口号没有选对。 在linux系统中,端口号再1024以下的需要root权限,只要把端口改成大于1024的就可以了,但避开一些软件的默认端口,如Tomcat的8…...
IDEA项目实践——VUE介绍与案例分析
系列文章目录 IDEA项目实践——JavaWeb简介以及Servlet编程实战 IDEA项目实践——Spring集成mybatis、spring当中的事务 IDEA项目实践——Spring当中的切面AOP IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——Spring框架简介,以及IOC注解 I…...
vue-canvas基本使用和注意事项-动画闪烁效果-自适应适配不同分辨率问题
前言 canvas画布是html的新特性,熟悉画布我们可以完成很多拖拽,标注,动画的功能 使用canvas实现一个小例子很容易,但是真正在项目中使用时,我们需要注意的地方有很多 canvas基本原理就是它基于渲染方法,根…...
Jmeter 如何才能做好接口测试?
现在对测试人员的要求越来越高,不仅仅要做好功能测试,对接口测试的需求也越来越多! 所以也越来越多的同学问,怎样才能做好接口测试? 要真正的做好接口测试,并且弄懂如何测试接口,需要从如下几…...
电商平台京东平台获得京东商品描述API接口演示案例
京东商品描述API接口可以获取京东商品描述: 详细介绍商品的特点和功能,让消费者能够了解商品的具体用途和效果。 使用简洁明了的语言,避免使用过于专业的术语和长句子,让消费者能够轻松理解。 重点突出商品的卖点和优势,让消费者能够更加清晰地了解商品的价值 …...
《算法竞赛·快冲300题》每日一题:“单位转换”
《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 单…...
【Python 面试突击 · 05】大厂高频面试题:从数据结构到并发编程深度解析
目录 1. 简述下 Python 中的字符串、列表、元组和字典 2. 深拷贝和浅拷贝概念理解 3. 为什么其他语言还要保留红黑树?不都直接用 hashTable? 4. 在 Python 中,进程和线程的区别? 5. Python 数据处理的库有哪些?用…...
从一道CTF赛题出发:手把手教你用火眼取证分析手机APP数据(附雷电模拟器实战)
从一道CTF赛题出发:手把手教你用火眼取证分析手机APP数据(附雷电模拟器实战) 在网络安全竞赛和电子数据取证领域,手机取证一直是技术含量高且实用性强的核心技能。本文将从一个真实的CTF赛题切入,带您完整走通手机镜像…...
GEMMA-3像素工作站效果展示:复古界面下的惊艳图像理解案例
GEMMA-3像素工作站效果展示:复古界面下的惊艳图像理解案例 1. 引言:当AI遇见像素艺术 在数字艺术与人工智能的交叉点上,GEMMA-3像素工作站创造了一种独特的体验。这款工作站将Google最先进的多模态大模型Gemma-3封装在一个充满90年代情怀的…...
从‘Hello World’到物联网:用Hi3861点灯程序,带你理解鸿蒙轻量级设备开发的核心流程
从‘Hello World’到物联网:用Hi3861点灯程序,带你理解鸿蒙轻量级设备开发的核心流程 在物联网设备开发领域,鸿蒙系统(OpenHarmony)正以其轻量级、高并发的特性吸引着越来越多的开发者。对于初学者而言,一个…...
FatFileSystem:面向资源受限MCU的轻量级FAT文件系统
1. FatFileSystem 嵌入式 FAT 文件系统库深度解析FatFileSystem 是一个轻量级、可移植的嵌入式 FAT 文件系统实现,专为资源受限的微控制器环境设计。它并非完整重写的 FAT32 标准栈(如 FatFs),而是对经典开源 FAT 实现的精简裁剪与…...
comsol仿真建模 由于结构本身的复杂性,很难对实际多孔结构中的流动进行建模。 在实际应用中...
comsol仿真建模 由于结构本身的复杂性,很难对实际多孔结构中的流动进行建模。 在实际应用中,详细求解流场不可行。 因此,使用了利用多孔结构平均物理量 (如孔隙率和渗透率)的宏观方法。 本例详细分析孔隙尺度的流场&am…...
从零构建大模型?斯坦福CS336爆火课程带你闯关,附超全学习资源包!
文章介绍了斯坦福大学CS336《从零开始构建语言模型》课程,该课程借鉴操作系统课程理念,带领学生体验语言模型创建的各个环节,包括数据收集、模型构建、训练和评估。课程内容实践性强,需要较多学习开发时间,适合有一定基…...
Hunyuan-MT-7B真实效果:法院判决书专业术语(如‘举证责任倒置’)精准对应翻译
Hunyuan-MT-7B真实效果:法院判决书专业术语(如‘举证责任倒置’)精准对应翻译 1. 引言:当法律翻译遇上AI 想象一下这样的场景:一份涉及跨国纠纷的法院判决书需要翻译,里面充满了"举证责任倒置"…...
Bedook超声波传感器应用测试
⒈实物和型号⑴产品型号:Bedook UM30-T20P-C31S12-X(PNP型)⑵实物图片:⑶产品规格:一般说明感应距离150…2000mm调节范围200…2000mm盲区0…150mm标准检测物100mm100mm换能器频率112kHz响应延时出厂设定200ms工作方式/…...
Kronos创新应用实战指南:从技术原理到跨行业落地
Kronos创新应用实战指南:从技术原理到跨行业落地 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos Kronos作为金融市场的"语言模型"&a…...
