当前位置: 首页 > news >正文

【makefile】自动化变量的简述及实例

文章目录

  • 10. env
  • 20. 简述
    • 百度百科
    • 常用的自动化变量
  • 30. 实例
  • 90. 附件下载

10. env

ubuntu=1804
GNU Make 4.1

20. 简述

百度百科

https://baike.baidu.com/item/Makefile/4619787?fr=ge_ala

makefile 文件的格式:
目标:依赖命令
软件编译的流程概述:编译:编译源代码(包括预编译等等步骤)链接:将编译后的代码链接到一起
PS:makefile的管理规则是如果形成目标文件的各类依赖中存在更新(修改日期大更新),则根据依赖关系编译/链接相关文件。假设形成一个test的可执行文件需要main.c的源码,如果main.c被修改,则日期会同步更新,那么test会从编译源码开始重新执行,如果main.c未被修改,则日期并不会比当前test中使用的源码更新,所以不需要重新生成test。

常用的自动化变量

$@	: 目标的完整名称
$<	: 第一个依赖文件
$^	: 所有依赖文件

30. 实例

# 指定编译器,c编译器默认为cc
CC  := gcc# 通过源文件的名称得到所有依赖的文件名称
src     := $(shell ls *.c)
objs    := $(patsubst %.c,%.o,$(src))# make会生成第一个碰到的target
.PHONY : all
all     :   test
# 这里为什么不直接使用test:xxx,二需要通过all转一下?
# 自己试一下就知道了,不转会导致cmd(即编译.o)默认执行,这会导致反复生成.o文件# 生成的目标问价及其依赖,最终的目标需要多种.o依赖。
# $^ 表示所有依赖文件,每个依赖文件以空格隔开
test    :   $(objs)$(CC) -o $@ $^# 目标文件需要的.o文件需要依赖.c文件。
# 由于生成.o文件的命令格式是一样的,故可以使用如下格式同一执行。
%.o :   %.c$(CC) -o $@ -c $<# -o 指定生成的文件名,-c 只编译不连接# $@ 指目标文件的名称,即main.o等# $< 指目标文件需要的依赖,即生成mian.o需要的main.c文件.PHONY  : clean
clean:rm -f $(objs) test

PS:

  1. .PHONY:目标文件,指的是不生成实体文件,即“伪目标”,新版make中可写可不写
  2. 上述实例未体现预编译、头文件等管理

90. 附件下载

https://download.csdn.net/download/yujianliam/88228850

相关文章:

【makefile】自动化变量的简述及实例

文章目录 10. env20. 简述百度百科常用的自动化变量 30. 实例90. 附件下载 10. env ubuntu1804 GNU Make 4.120. 简述 百度百科 https://baike.baidu.com/item/Makefile/4619787?frge_ala makefile 文件的格式&#xff1a; 目标&#xff1a;依赖命令软件编译的流程概述&am…...

IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/

IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/ Idea下载官网一键直达&#xff1a; 官网一键直达...

C#,《小白学程序》第一课:初识程序

曰&#xff1a;扫地僧练就绝世武功的目的是为了扫地更干净。 1 文本格式 /// <summary> /// 《小白学程序》第一课&#xff1a;初识程序 /// </summary> /// <param name"sender"></param> /// <param name"e"></param&…...

LeetCode--HOT100题(38)

目录 题目描述&#xff1a;226. 翻转二叉树&#xff08;简单&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;226. 翻转二叉树&#xff08;简单&#xff09; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 LeetCode做题链…...

C语言:指针(超深度讲解)

目录 指针&#xff1a; 学习目标&#xff1a; 指针可以理解为&#xff1a; 字符指针&#xff1a; 定义&#xff1a;字符指针 char*。 字符指针的使用&#xff1a; 练习&#xff1a; 指针数组&#xff1a; 概念&#xff1a;指针数组是一个存放指针的数组。 实现模拟二维…...

Docker详解

文章目录 Docker详解一、Docker简介什么是容器 &#xff1f;容器技术有哪些优点 &#xff1f;什么是Docker &#xff1f;Docker的特点Docker的使用场景 二、Docker的基本组成Docker 客户端 / 守护进程Docker Image 镜像Docker Container 容器Docker Registry 仓库 三、Docker 依…...

软件开发方法:复用与扩展

软件开发方法&#xff1a;复用与扩展 一、面向对象二、进一步认识 一、面向对象 封装 工程上的意义&#xff1a;屏蔽细节&#xff0c;隔离变化 public、protected、private 继承 工程上的意义&#xff1a;复用 多态工程上的意义&#xff1a;高内聚&#xff0c;低耦合 —— 面…...

C++新经典09--函数新特性、inline内联函数与const详解

函数回顾与后置返回类型 函数定义中如果有形参则形参应该有名字&#xff0c;而不光是只有类型&#xff0c;但是如果并不想使用这个形参&#xff0c;换句话说这个形参并不在这个函数中使用&#xff0c;则不给形参名也可以&#xff0c;但在调用这个函数的时候&#xff0c;该位置…...

C++中机器人应用程序的行为树(ROS2)

马库斯布赫霍尔茨 一、说明 以下文章为您提供了对机器人应用程序或框架中经常使用的行为树的一般直觉&#xff1a;ROS&#xff0c;Moveit和NAV2。了解行为 Tress &#xff08;BT&#xff09; 框架的原理为您提供了在游戏领域应用知识的绝佳机会。BT可以与Unity或Unreal集成。 由…...

像Vuex一样使用redux

redux基础知识 本篇文章主要介绍redux的基本使用方法&#xff0c;并简单封装&#xff0c;像vuex一样写redux 学习文档 英文文档: https://redux.js.org/ 中文文档: http://www.redux.org.cn/ Github: https://github.com/reactjs/redux redux是什么 redux和vuex几乎是一…...

关于模板的大致认识【C++】

文章目录 函数模板函数模板的原理函数模板的实例化模板参数的匹配原则 类模板类模板的定义格式类模板的实例化 非类型模板参数typename 与class模板的特化函数模板特化类模板特化全特化偏特化 模板的分离编译 函数模板 函数模板的原理 template <typename T> //模板参数…...

C#如何遍历类的属性,并获取描述/注释

要获取属性的描述/注释&#xff0c;需要使用System.ComponentModel命名空间中的DescriptionAttribute。可以通过反射获取属性上的DescriptionAttribute&#xff0c;并获取其Description属性值。 首先&#xff0c;需要引入System.ComponentModel命名空间&#xff1a; using Sy…...

ffmpeg 子进程从内存读取文件、提取图片到内存

除了网络、文件io&#xff0c;由python或java或go或c等语言开启的ffmpeg子进程还支持pipe&#xff0c;可以从stdin读入数据&#xff0c;输出转化后的图像到stdout。无需编译 ffmpeg&#xff0c;直接调用 ffmpeg.exe不香么&#xff01; “从内存读”可用于边下载边转码&#xf…...

Springboot+Netty+WebSocket搭建简单的消息通知

SpringbootNettyWebSocket搭建简单的消息通知 一、快速开始 1、添加依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.36.Final</version> </dependency> <dependency>…...

@RefreshScope静态变量注入

RefreshScope注解通常用于注入实例变量&#xff0c;而不是静态变量。由于静态变量与类直接关联&#xff0c;刷新操作无法直接影响它们。 如果你需要动态刷新静态变量的值&#xff0c;一种可行的方案是使用一个通过Value注解注入的实例变量&#xff0c;并在该实例变量的getter方…...

多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测

多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测。 模型描…...

SAP 凭证项目文本 增强 demo2

SAP 凭证项目文本 增强 demo2 增强点 AC_DOCUMENT METHOD if_ex_ac_document~change_initial. DATA: ls_item TYPE accit, ls_exitem TYPE accit_sub, lv_sgtxt TYPE bseg-sgtxt, lv_bktxt TYPE bkpf-bktxt, lv_zuonr TYPE bseg-zuonr, lv_blart TYPE bkpf-blart, lv_zprono TY…...

一套基于C#语言开发的LIMS实验室信息管理系统源码

实验室信息管理系统&#xff08;LIMS)是指帮助实验室组织和管理实验数据的计算机软件系统&#xff0c;它将实验室操作有机地组织在一起&#xff0c;以满足实验室工作流程的所有要求。它能以不同的方式支持实验室的工作&#xff0c;从简单的过程(如样品采集和入库)到复杂的流程(…...

kubesphere部署rocketmq5.x,并对外暴露端口

kubesphere是青云开源的k8s管理工具&#xff0c;用户可以方便的通过页面进行k8s部署的部署&#xff0c;rocketmq则是阿里开源的一款mq平台&#xff0c;现在版本为5.1.3版本&#xff0c;较比4.x版本的rocketmq有比较大的调整&#xff1a;比如客户端的轻量化&#xff08;统一通过…...

5.8 汇编语言:汇编高效除法运算

通常情况下计算除法会使用div/idiv这两条指令&#xff0c;该指令分别用于计算无符号和有符号除法运算&#xff0c;但除法运算所需要耗费的时间非常多&#xff0c;大概需要比乘法运算多消耗10倍的CPU时钟&#xff0c;在Debug模式下&#xff0c;除法运算不会被优化&#xff0c;但…...

超越单线程:探索MATLAB并行计算与进程间通信的实践路径

1. MATLAB并行计算的本质与局限 很多人第一次接触MATLAB时&#xff0c;都会惊讶于它的单线程特性——当你运行一个耗时计算时&#xff0c;整个界面都会卡住&#xff0c;连命令行都无法输入。这其实源于MATLAB最初的设计哲学&#xff1a;保持简单一致的执行环境。但现代计算任务…...

CVXPY多目标优化终极指南:如何在复杂决策中找到最佳平衡点

CVXPY多目标优化终极指南&#xff1a;如何在复杂决策中找到最佳平衡点 【免费下载链接】cvxpy A Python-embedded modeling language for convex optimization problems. 项目地址: https://gitcode.com/gh_mirrors/cv/cvxpy CVXPY是一个嵌入Python的凸优化建模语言&…...

FanControl:打造高效静音的电脑散热解决方案

FanControl&#xff1a;打造高效静音的电脑散热解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanContr…...

Qwen3-ASR-1.7B开源ASR教程:适配国产昇腾/寒武纪平台的移植可行性分析

Qwen3-ASR-1.7B开源ASR教程&#xff1a;适配国产昇腾/寒武纪平台的移植可行性分析 1. 项目背景与模型介绍 「清音听真」是基于Qwen3-ASR-1.7B语音识别引擎的高精度转录平台。作为0.6B版本的跨代升级&#xff0c;这个1.7B参数的模型在复杂语音场景处理能力上实现了显著提升。 …...

AI 辅助 CAPL 脚本编写实战

专栏&#xff1a;《AI 汽车电子测试实战》第 6 篇 作者&#xff1a;一线汽车电子测试工程师 适合人群&#xff1a;CANoe 测试工程师、想学习 CAPL 的新手、想提升脚本效率的测试人员开篇&#xff1a;CAPL 脚本的痛点 CAPL&#xff08;Communication Access Programming Languag…...

Legacy iOS Kit终极指南:让旧款iPhone/iPad重获新生的完整方案

Legacy iOS Kit终极指南&#xff1a;让旧款iPhone/iPad重获新生的完整方案 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...

如何突破极域电子教室限制?3个高效学习工具推荐

如何突破极域电子教室限制&#xff1f;3个高效学习工具推荐 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 在数字化教学环境中&#xff0c;极域电子教室作为常见的教学管理软件&…...

3分钟快速上手:DouYinBot抖音无水印视频下载终极指南 [特殊字符]

3分钟快速上手&#xff1a;DouYinBot抖音无水印视频下载终极指南 &#x1f680; 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 在短视频内容创作和分享的时代&#xff0c;如何快速获取无水印的抖音视频成为创作者和…...

AI算法Excel可视化终极指南:如何用电子表格深度解析人工智能原理

AI算法Excel可视化终极指南&#xff1a;如何用电子表格深度解析人工智能原理 【免费下载链接】ai-by-hand-excel 项目地址: https://gitcode.com/gh_mirrors/ai/ai-by-hand-excel 你是否曾被复杂的AI算法公式和抽象概念困扰&#xff0c;想要找到一种更直观的学习方式&a…...

Flux.1-Dev深海幻境风格探索:卷积神经网络特征可视化艺术再创作

Flux.1-Dev深海幻境风格探索&#xff1a;卷积神经网络特征可视化艺术再创作 最近在玩一个特别有意思的跨界项目&#xff0c;把两个看似不搭界的东西——深度学习的“大脑”和AI艺术生成——给揉到了一起。我们都知道&#xff0c;卷积神经网络&#xff08;CNN&#xff09;在识别…...