linux--关于makefile
makefile文件
可以指定编译顺序,这样方便一个项目的多个文件要编译的挨个操作的麻烦。
makefile文件的命名:makefile 或者 Makefile 必须是这俩,系统才能识别
规则的书写语法如下:
一个makefile内可以有多个规则
目标:依赖a 依赖b ...命令(shell命令)
命令前面一定要插入制表符Tab
makefile文件的工作原理
- 一般来讲下面的规则都是为第一条规则服务的
- 先检查所需的依赖是否存在,不存在就查找下面是否有生成依赖的规则
- 可以根据文件的时间更新目标,例如依赖的时间比生成过的目标晚,那么证明依赖更新过,会重新运行对应依赖的生成文件以及重新生成规则一的目标
关于makefile中的变量
自定义变量:
变量名=变量值
预定义变量:
AR:归档维护程序的名称,默认ar
CC:C编辑器的名称,默认cc
CXX:C++编辑器的名称,默认为g++
$@:目标的完整名称(包含其文件类型)
$<:第一个依赖文件的名称
$^:所有的依赖文件
获取变量的值的语法:
$(变量名)
示例:
app:main.c a.c b.cgcc -c main.c a.c b.c -o app
变为:
app:main.c a.c b.c$(CC) -c $^ -o $@
标题更厉害简化的写法,不用每一行每一行写文件的gcc -c 输入 输出
wildcard和patsubst是函数

这里第二个框写错了,应该是$(CC) -c $< -o $@
然后直接(红色是命令,黄色是输出):

相关文章:
linux--关于makefile
makefile文件 可以指定编译顺序,这样方便一个项目的多个文件要编译的挨个操作的麻烦。 makefile文件的命名:makefile 或者 Makefile 必须是这俩,系统才能识别 规则的书写语法如下: 一个makefile内可以有多个规则 目标:依赖a 依…...
从2025年起:数字化建站PHP 8.1应成为建站开发的基准线
在数字化浪潮席卷全球的今天,PHP语言仍然保持着Web开发领域的核心地位。根据W3Techs最新统计,PHP驱动着全球78.9%的已知服务端网站。当时间指向2025年,这个拥有28年历史的编程语言将迎来新的发展里程碑——PHP 8.1版本应成为网站开发的最低基准要求,这不仅是技术迭代的必然…...
根据deepseek模型微调训练自动驾驶模型及数据集的思路
以下是使用DeepSeek模型微调训练自动驾驶模型的详细步骤和代码示例。本流程假设你已有自动驾驶领域的数据集(如驾驶指令、传感器数据等),并基于PyTorch框架实现。 Step 1: 环境准备 # 安装依赖库 pip install torch transformers datasets n…...
蓝桥杯篇---IAP15F2K61S2定时器
文章目录 前言简介定时器的工作模式1.模式02.模式13.模式24.模式3 定时器的寄存器1.TMOD2.TCON3.THO/TL04.TH1/TL1 定时器的使用步骤1.配置TMOD2.设置初值3.启动定时器4.使能中断5.编写中断服务函数 示例代码:定时器的基本使用代码说明示例代码:定时器1用…...
Java发展史
JavaEE的由来 语言的诞生 Java的前身是Oak语言,其目的是搞嵌入式开发开发智能面包机 叮~~~🍞🍞🍞 产品以失败告终 巅峰 网景公司需要网景浏览器打开网页,Oak->Java,进行前端开发(相关技…...
Jenkins 新建配置 Freestyle project 任务 六
Jenkins 新建配置 Freestyle project 任务 六 一、新建任务 在 Jenkins 界面 点击 New Item 点击 Apply 点击 Save 回到任务主界面 二、General 点击左侧 Configure Description:任务描述 勾选 Discard old builds Discard old builds:控制何时…...
Electron视图进程和主进程通讯
快速创建基于vue的electron项目:quick-start/create-electron - npm 视图线程也就index.html是无法直接访问这个api的(如果没有开启视图层访问nodejs的功能,现在几乎没法直接开启,开启了一堆警告提示) 所以需要通过r…...
【湖南-益阳】《益阳市市本级政府投资信息化项目预算编制与财政评审工作指南》益财评〔2024〕346号-省市费用标准解读系列40
《益阳市市本级政府投资信息化项目预算编制与财政评审工作指南(试行)》(益财评〔2024〕346号)由益阳市财政局主编,2024年10月17日起正式执行,本指南主要规定了政府投资信息化项目费用的构成、测量过程和方法…...
springboot+mybatis按条件分页查询多张表
文章目录 背景方案推荐创建 DTO创建 Mapper创建对应 xmlService 代码 背景 假如同 mysql 数据源下有如下几张表: 用户基础信息表用户地址表用户学历信息表 我希望做分页查询用户数据,用户数据为各个表内信息的汇总,并且这个分页查询会根据…...
探索Java中的集合类_特性与使用场景
1. 引言 1.1 Java集合框架概述 Java集合框架(Java Collections Framework, JCF)是Java中用于存储和操作一组对象的类和接口的统称。它提供了多种数据结构来满足不同的需求,如列表、集合、映射等。JCF的核心接口包括Collection、List、Set、Queue和Map,以及它们的各种实现…...
具身智能在智能巡检机器人中的应用——以开关柜带电操作机器人为例
随着机器人技术和人工智能的迅速发展,具身智能在各行业的应用日益广泛,尤其是在电力行业中的智能巡检领域。传统的电力巡检和维护工作通常需要人工操作,存在着高温、高压、强电磁场等危险环境,且效率较低。开关柜带电操作机器人作…...
C#+SqlSugar实现主从库读写分离
在使用 **SqlSugar** 进行分库操作时,可以通过配置多个数据库连接,并根据业务逻辑动态切换数据库。以下是一个完整的分库示例,展示如何实现分库功能。 --- ### **1. 安装 NuGet 包** 安装 SqlSugarCore: bash dotnet add packag…...
Webpack 基础入门
一、Webpack 是什么 Webpack 是一款现代 JavaScript 应用程序的静态模块打包工具。在 Web 开发中,我们的项目会包含各种类型的文件,如 JavaScript、CSS、图片等。Webpack 可以将这些文件打包成一个或多个文件,以便在浏览器中高效加载。它就像…...
nuxt中引入element-ui组件控制台报错问题
在使用element-ui组件的外层加一层 <client-only placeholder"Loading..."><van-button type"primary">主要按钮</van-button> </client-only> 实际使用: <div class"tab"><client-only placehol…...
【机器学习】线性回归 多项式线性回归
【机器学习系列】 KNN算法 KNN算法原理简介及要点 特征归一化的重要性及方式线性回归算法 线性回归与一元线性回归 线性回归模型的损失函数 多元线性回归 多项式线性回归 多项式线性回归 V1.0多项式回归多项式回归的公式 特征代换超越函数作为特征向量维度 V1.0 多项式回归 …...
Java面试第二山!《计算机网络》!
在 Java 面试里,计算机网络知识是高频考点,今天就来盘点那些最容易被问到的计算机网络面试题,帮你轻松应对面试,也方便和朋友们一起探讨学习。 一、HTTP 和 HTTPS 的区别 1. 面试题呈现 HTTP 和 HTTPS 有什么区别?在…...
RocketMQ 5.0安装部署
0.前言 在微服务架构逐渐成为主流的今天,消息队列如同数字世界的快递员,承担着系统间高效通信的重要使命。 Apache RocketMQ 自诞生以来,因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余…...
go语言并发的最佳实践
Go 语言的并发模型是其最强大的特性之一,基于 CSP(Communicating Sequential Processes)理论,通过 goroutine 和 channel 实现轻量级并发. 一、并发核心概念 1. Goroutine 在 Go 语言中,Goroutine 是实现并发编程的…...
俄罗斯方块游戏完整代码示例
以下是一个基于Cocos Creator引擎开发的俄罗斯方块游戏的完整代码示例。该游戏实现了俄罗斯方块的基本功能,并且代码整合在单个文件中,无需任何外部依赖,可以直接在浏览器中运行。 1. 创建Cocos Creator项目 首先,确保你已经安装了…...
Ubuntu22.04配置cuda/cudnn/pytorch
Ubuntu22.04配置cuda/cudnn/pytorch 安装cuda官网下载.run文件并且安装/etc/profile中配置cuda环境变量 cudnn安装官网找cuda版本对应的cudnn版本下载复制相应文件到系统文件中 安装pytorch官网找cuda对应版本的pytorchpython代码测试pytorch-GPU版本安装情况 安装cuda 官网下…...
【九】Golang 数组
💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 数组数组初始化默认初始化显式初始化省略长度初始化索…...
百达翡丽(Patek Philippe):瑞士制表的巅峰之作(中英双语)
百达翡丽(Patek Philippe):瑞士制表的巅峰之作 在钟表界,百达翡丽(Patek Philippe) 一直被誉为“世界三大名表”之一,并且常被认为是其中的至高存在。一句“没人能真正拥有一枚百达翡丽&#x…...
【学习】软件测试中的分类树法介绍
分类树法是一种软件测试设计技术,它通过构建一个树状结构来组织和展示输入数据的多种组合。这种方法有助于系统地识别和分析可能的测试情况,从而确保对软件进行全面而详尽的测试。分类树法特别适用于具有多个选择或条件的复杂系统,它可以有效…...
打造智能语料库:通过Coco AI Server 实现 Notion 笔记 RAG 检索功能
本文将详细介绍如何将 Notion 作为语料库,部署 Coco Server 的 RAG(Retrieval-Augmented Generation)功能。我们将使用 Easysearch 作为语料库存储 Notion 素材,并通过 ollama 进行 LLM 推理。 1. 环境准备 1.1 启动 Easysearch…...
SP字体UI放大代码
代码: echo off set QT_SCALE_FACTOR放大倍数 start "" "你的SP.exe启动路径"...
spring boot知识点2
1.spring boot 要开启一些特性,可通过什么方式开启 a.通过Enable注解,可启动定时服务 b.通过application.properties可设置端口号等地址信息 2.什么是热部署,以及spring boot通过什么方式进行热部署 热部署这个概念,我知道。就…...
动手学Agent——Day2
文章目录 一、用 Llama-index 创建 Agent1. 测试模型2. 自定义一个接口类3. 使用 ReActAgent & FunctionTool 构建 Agent 二、数据库对话 Agent1. SQLite 数据库1.1 创建数据库 & 连接1.2 创建、插入、查询、更新、删除数据1.3 关闭连接建立数据库 2. ollama3. 配置对话…...
qt实习总结
创建一个滑动条 QSlider *slider new QSlider(Qt::Vertical); //创建一个垂直方向的 进度条 带有上下箭头的输入框 QSpinBox 提供了一个带有上下箭头的输入框 垂直 水平怎么说 horizontal vetical 布局知识 BtnLayout->addWidget(AmendBtn); BtnLayout->addWidg…...
SpringBoot3.x整合WebSocket
SpringBoot3.x整合WebSocket 本文主要介绍最新springboot3.x下如何整合WebSocket. WebSocket简述 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它允许在浏览器和服务器之间进行实时的、双向的通信。相对于传统的基于请求和响应的 HTTP 协议ÿ…...
vLLM专题(二):安装-CPU
vLLM 是一个 Python 库,支持以下 CPU 变体。选择您的 CPU 类型以查看供应商特定的说明: Intel/AMD x86 vLLM 最初支持在 x86 CPU 平台上进行基本模型推理和服务,支持的数据类型包括 FP32、FP16 和 BF16。 注意 此设备没有预构建的 wheel 包或镜像,因此您必须从源代码构建 v…...
