Makefile4--变量和不同的赋值方式

教你玩转makeflie(二)伪目标的引入、变量和不同的赋值方式 伪目标的引入makefile 中的目标究竟是什么?3.1 默认情况下3.2 下面的代码有什么意义?3.3 编程实验:有趣的目标 makefile.1hello.out all : func.o main.ogcc -o hello.out func.o main.ofunc.o : func.cgcc -o func.o -c func.cmain.o : main.cgcc -o main.o -c main.cclean :rm *.o hello.out解释:当makefile同目录下,有... 阅读详情

学习自狄泰软件学院唐佐临老师Makefile课程,文章中图片取自老师的PPT,仅用于个人笔记。


在这里插入图片描述

在这里插入图片描述

实验1

CC := g++
TARGET := hello-world.out

$(TARGET) : func.o main.o
	$(CC) -o $(TARGET) func.o main.o

func.o : func.c
	$(CC) -o func.o -c func.c

main.o : main.c
	$(CC) -o main.o -c main.c

.PHONY : rebuild clean all

rebuild : clean all


all : $(TARGET)

clean :
	rm *.o $(TARGET)




mhr@ubuntu:~/work/makefile1$ 
mhr@ubuntu:~/work/makefile1$ ll
total 20
drwxrwxr-x 2 mhr mhr 4096 Dec 16 07:30 ./
drwxrwxr-x 4 mhr mhr 4096 Dec 15 03:18 ../
-rw-rw-r-- 1 mhr mhr    0 Dec 14 04:05 clean
-rw-rw-r-- 1 mhr mhr   84 Dec 14 00:54 func.c
-rw-rw-r-- 1 mhr mhr   59 Dec 14 00:31 main.c
-rw-rw-r-- 1 mhr mhr  191 Dec 16 07:29 makefile
mhr@ubuntu:~/work/makefile1$ 
mhr@ubuntu:~/work/makefile1$ 
mhr@ubuntu:~/work/makefile1$ 
mhr@ubuntu:~/work/makefile1$ make all
gcc -o func.o -c func.c
gcc -o main.o -c main.c
gcc -o hello-world.out func.o main.o
mhr@ubuntu:~/work/makefile1$ 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Makefile基础语法 文章目录一、Makefile介绍二、Makefile基础语法2.1、语法编译规则2.2、变量定义2.3、通配符使用(*, %)2.4、目标文件搜索(VPATH)2.5、伪目标(.PHONY)2.6、条件判断2.7、常用函数2.8、命令执行(\)四、-e传参错误 一、Makefile介绍   Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程文件的编译和链接等相关规则。通俗的讲,Makefile 能够实现大批量文件的简化编译的操作。我们只需要执行 make 命令,工程就会自动编译。每次想 阅读详情

相关推荐

makefile4

#makefile简单写法 #main-可执行文件名 #main.o test.o 依赖的.o文件 #变量使用 OBJS=main.o test.o CC=gcc #编译选项 CFLAGS+=-c -Wall -g main:$(OBJS) $(CC) $^ -o $@ %.o:%.c $(CC) $^ $(CFLAGS+) -o $@ clean: #$(RM) *.o main -r rm *.o main -rf ...

我不是码农的博客~~~ 141

Makefile常用语法

1、赋值=,:=,?=,+= 1)= 使用”=”进行赋值,变量的值是整个makefile中最后被指定的值。 即当变量A被重复赋值时,A = 最后一次的值=new; A = test A = new 同上,若Makefile中存在使用变量B引用变量A的场合,无论该行代码在哪里,B始终=new B = $(A) A = g++ B = $(A) A = CC all: @echo $(A) @echo $(B) 输出 CC CC 2):= 使用”:=”进行赋值,变量

qq_38933606的博客 532

IP2315高效同步降压充电IC在快充应用中的硬件与软件控制策略

本文深入解析IP2315高效同步降压充电IC在快充应用中的硬件与软件控制策略,涵盖其核心特性、硬件电阻调节技巧、I2C动态控制方案、散热设计优化及典型问题排查。IP2315支持多种快充协议,如Type-C PD、华为FCP等,适用于便携设备快速充电需求,并通过I2C实现灵活的充电参数设置,提升充电效率与安全性。

weixin_29248313的博客 538

【Makefile学习记录4】变量和不同的赋值方式

   既然makefile是一种脚本程序,那么就要支持程序设计语言中通用的概念和操作。所以必然 也会支持定义变量和赋值的操作。但是不同于C语言中,先声明变量类型、定义变量名字然后赋值。在makefile中不需要声明变量的类型,makefile中变量只有一种类型,只代表文本数据(字符串)。1、makefile中变量命名规则为:变量的定义和使用:    例如在makefile中定义变量CC、TARGE...

haibing_x的博客 553

汇丰外包Java岗面试复盘:Zoom面1.5小时,从英语、粤语到现场敲代码的极限挑战

本文详细记录了汇丰银行外包Java岗位的面试全过程,包括多语言切换(英语、粤语)的技术沟通挑战和现场编码测试的实战经验。从高并发编程到JVM调优,面试不仅考察技术深度,更注重实战问题解决能力。文章分享了应对跨国银行技术面试的实用策略,帮助Java开发者在跨文化环境中提升竞争力。

weixin_42524824的博客 362

SKUA-GOCAD入门教程-第七节 点的创建与编辑3

本文介绍了四种从井数据创建点集的方法

江洋大葱的博客 963

Makefile中的变量(定义/引用/赋值、自动化变量、替换引用、嵌套引用)

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 4472

Spring AI 实战:如何使用 MCP Server 搭建 MCP 天气查询服务

MCP(Model Context Protocol)是 Anthropic 提出的一种开放协议,它定义了AI 模型与外部世界交互的标准方式。通俗地说:大模型本身只拥有训练数据中的知识,它不知道今天的天气、无法查询你的数据库、不能调用你的内部 API。MCP 就是解决这个问题的"桥梁"——它让模型能够发现并使用外部工具(Tools),就像人用手去操作工具一样。角色职责对应依赖MCP Server暴露工具(Tool),供模型调用MCP Client连接 Server,让模型发现和使用工具本文我们先聚焦。

SmartSi 756

【Makefile由浅入深完全学习记录4】变量和不同的赋值方式

今天来学习Makefile中变量的不同的赋值方式!努力的意义就是让贫穷不再限制你的想象!加qq共同学习交流1126137994 1、概念 makefile中支持程序设计中变量的概念 makefile中的变量只代表文本数据(字符串) makefile中的变量名规则 -变量名可以包含字符、数字、下划线 -不能包含 : # = 与空格 -变量名区分大小写 变量的定义和使用: 简...

厚积薄发 828

基于FPGA的数字图像处理-直方图操作【3.3】

对于固定的位宽和图像分辨率来说,这个计算过程是 可定量的,也就是这个归一化系数是已知的。1.直方图累计和 根据数学定义,直方图累加和的定义是小于指定像素的所有像素 的统计值之和。在实际应用中,处理帧缓存是费时费力费资源的一件事情,在许 多情况下,图像的变换比较慢,在这种情况下的一个近似是当建立当 前帧的直方图统计结果时使用从前一帧得到的映射。由测试结果可见,这两幅过曝光和曝光不足的图像,经过均衡化 之后的效果图差别不大,对比度都非常高,设计代码达到了预期的均 衡目的。累加和的计算情况如图6-28所示。

qq_43416206的博客 1124

【AI大模型:前沿】44、大模型+机器人:从自动化工具到通用智能体的技术革命与应用全景

大模型与机器人的融合催生了“具身智能体”,突破传统机器人智能化缺失、功能单一等瓶颈。大模型赋予机器人三大能力:常识推理(如热牛奶需去包装)、模糊指令解析(如“整理书桌”拆解步骤)、零样本任务泛化(如搭乐高桥)。技术实现上,通过多模态融合(视觉-语言-动作)、仿真训练(虚拟试错)和实时反馈(动态调整动作)形成闭环。主流框架如Google RT-2(端到端动作生成)、斯坦福Q-Transformer(强化学习优化)和Figure 01(ChatGPT驱动人形机器人)各具优势,可适配工业、家庭等场景。该技术正重塑

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 2019

makefile 变量赋值方式

makefile 中支持程序设计语言中的变量的概念。makefile 中的变量只代表文本数据 (字符串)。变量名可以包含 字符,数字,下划线。不能包含 " : ", " # ", " = ", 或 " "。变量名大小写敏感。定义使用变量:Makefile 中的变量是用于存储特定值或字符串的对象。CC := gcc 表明 定义一个变量 CC, 将它赋值为 gcc ,定义了编译器的类型。这里的:=就是简单的变量赋值方式,相当于 c 语言中的。$( ) 的作用是引用变量.

wuyiyu_的博客 3616

基于STM32的农业蔬菜大棚温湿度采集控制系统(代码+仿真+全部资料)

摘要: 本研究设计了一种基于STM32微控制器的农业蔬菜大棚温湿度智能控制系统。系统通过DHT11传感器实时采集温湿度数据,LCD屏显示当前值及预设阈值,用户可通过按键模块调整阈值范围。当温湿度超出设定阈值时,系统自动控制风扇或加湿器进行调节,确保大棚环境稳定。实验验证表明,该系统具备高精度监测、稳定控制和模块化扩展等优势,有效优化蔬菜生长环境。未来可扩展远程监控等功能,进一步提升智能化水平。 关键词: STM32、温湿度控制、蔬菜大棚、DHT11、自动化调节

3254968421的博客 785

Makefile中变量的定义及赋值

变量的名称=值列表Makefile 中的变量的使用其实非常的简单,因为它并没有像其它语言那样定义变量的时候需要使用数据类型。变量的名称可以由大小写字母、阿拉伯数字和下划线构成。等号左右的空白符没有明确的要求,因为在执行 make 的时候多余的空白符会被自动的删除。至于值列表,既可以是零项,又可以是一项或者是多项。调用变量的时候可以用或者是来替换,这就是变量的引用。这就是引用变量后的 Makefile 的编写,比我们之前的编写方式要简单的多。

十三阿哥的博客 2435

Avalonia 超级详细学习指南

什么是 Avalonia?Avalonia 是一个开源的、跨平台的 GUI 框架,允许开发者使用 XAML 和 C# 构建现代化、高性能的桌面应用程序。与其他框架相比,Avalonia 具有强大的跨平台能力和灵活的界面设计。} }()Avalonia 的特点和优势跨平台性:Avalonia 可以在 Windows、Linux、macOS 等多个平台上运行,开发者可以编写一套代码,然后在不同的操作系统上运行相同的应用程序。

仰望星空的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

04-变量和不同的赋值方式

文章目录1. makefile 中的变量2. makefile 中变量的赋值方式2.1 简单赋值 ( := )2.2 递归赋值 ( = )2.3 条件赋值 ( ?= )2.4 追加赋值 ( += )3. 总结 1. makefile 中的变量 makefile 中支持程序设计语言中变量的概念 makefile 中的变量只代表文本数据(字符串) makefile 中的变量名规则:变量名可以包含字符...

清浅 1311

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

第四载:makefile中变量的赋值方式

makefile类似于脚本程序,当然也支持程序里边变量的概念,makefile中的变量只是文本数据(字符串),没有C语言中的数字等,并且大小写敏感。 makefile中的变量有4种赋值方式: - 简单赋值( := )(最常用) - 递归赋值( = ) - 条件赋值( ?= ) - 追加赋值( += ) 对于变量的使用,与C语言不同的是,需要...

年少轻狂,幸福时光 1368

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

4.变量和不同的赋值方式

目录 1.变量的定义和使用 2.makefile中变量的赋值方式 2.1简单赋值(:=) 2.2递归赋值(=) 2.3.条件赋值(?=) 2.4追加赋值(+=) 2.5小结 makefile中支持程序设计语言中变量的概念 makefile中的变量值代表文本数据(字符串) makefile中的变量名规则 变量名可以包含字符,数字,下划线 ...

qq_34738528的博客 301

makefile变量

1.变量和不同的赋值方式 (1)makefile中支持程序设计语言中变量的概念 (2)makefile中的变量只代表文本数据(字符串) (3)makefile中的变量名规则 变量名可以包含字符,数字,下划线 不能包含“:”,"#","=“或” " 变量名大小写敏感 (4)变量的定义和使用 cc:=gcc TARGET:=hello.out //变量定义 $(TARGET):func.o main.o $(cc) -o $(TARGET) func.o main.o //变量使用 (5)makefi

weixin_46571142的博客 3568

makefile中变量赋值方法

makefile中变量赋值方法 赋值运算符: 1 = 2 ?= 3 := 4 += 5 define 变量赋值两种类型 Makefile中变量赋值分为两种方式:延时变量和立即变量 延时变量:使用该变量的时候,才展开该变量,并确定该变量的值(如"=","?=","define"定义的变量) 立即变量:定义的时候就已经确定了该变量的值(如":="定义的...

qq_20047177的专栏 1368

影响 Makefile 中变量值的方式

当你在命令行中直接为 make 命令指定变量时,这些变量的值具有最高优先级。例如:这里,VAR 的值在子 Makefile 的执行过程中将被设置为 "value",无论子 Makefile 内部如何定义 VAR。子 Makefile 中直接定义的变量(不考虑通过命令行或环境变量传递的情况)。这些定义根据赋值方式(=、:=、?=、+=)有不同的行为。

eloudy的专栏 1057

第四篇 变量和不同的赋值方式

makefile是一种程序设计语言,因此,它也支持程序设计语言中变量的概念,但是makefile中的变量是没有类型的,makefile中的变量只代表文本数据(字符串),makefile中的变量命名规则和C语言中类似,具体如下: 1、变量名可以包含字符、数字、下划线。 2、不能包含":"、"#"、"="或" "。 3、变量名大小写敏感。 makefile中变量...

diaozhiwa5526的博客 223

makefile —— 变量赋值 深入窥探 Makefile 变量(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、变量引用基础二、变量的两个特色三、变量引用高级技术3.1 替换引用3.2 嵌套变量引用(计算的变量名)总结 前言 变量,是在 makefile 中定义的名字,其用来代替一个文本字符串,该文本字符串称为该变量的值。在具体要求下,这些值可以代替目标、依赖、命令以及 mak

weixin_42109053的博客 2781

Makefile编程:4种赋值差异

Makefile中的变量赋值方式各有特点,选择合适的赋值方式对于编写清晰、高效的Makefile至关重要。简单赋值(:=)适用于在定义时就需要确定变量值的情况;递归赋值()适用于变量值依赖于其他变量且这些变量的值可能在后续发生变化的情况;条件赋值(?)适用于为变量提供默认值的情况;追加赋值(+=)则适用于需要向变量追加额外值的情况。以上信息基于Makefile的通用特性和多个权威来源的资料整理得出,希望能对您有所帮助。

hs977986979的博客 721

变量和不同的赋值方式

变量和不同的赋值方式 1、类比C语言变量定义 makefile中支持程序设计语言中变量的概念 makefile中的变量只代表文本数据(字符串) makefile中的变量名规则 变量名可以包含字符,数字,下划线 不能包含":","#","=“或” " 变量名大小写敏感 2、变量的定义和使用 3、编程实验 CC := gcc TARGET := hello.out $(TARGET) : fun.o main.o $(CC) -o $(TARGET) fun.o main.o fun.o

LangLang_2020的博客 317
上一篇: Makefile3--伪目标的引入
下一篇: Makefile5--预定义变量的使用
Ma浩然
博客等级 码龄9年 1万+粉丝 462原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值