makefile中的冒号和等号解析

告别拼音!用VSCode+Dosbox-X搞定汇编语言课程设计里的中文姓名显示 本文详细介绍了如何利用VSCode和Dosbox-X解决汇编语言课程设计中中文姓名显示的问题。通过配置开发环境、理解GB2312编码及正确使用汇编指令,学生可以告别拼音显示,实现中文字符的正确输出。文章还提供了完整的代码示例和常见问题排查方法,帮助读者快速掌握这一实用技能。 阅读详情
Makefile里的=显然是赋值的用法


风格1: 递归扩展变量
(recursively expanded variable)
变量定义格式是,变量和值之间用等号,即 =
例如:
foo = $(bar)
bar = $(ugh)
ugh = Huh?
all:;echo $(foo)

将显示 Huh?
再例如:
CFLAGS = $(include_dirs) -O
include_dirs = -Ifoo -Ibar
缺点是不能这么定义:CFLAGS = $(CFLAGS) -O ,将会死循环

风格2: 简单扩展变量
(simply expanded variables)
变量定义格式是,变量和值之间用冒号等号,即 :=
例如
x := foo
y := $(x) bar
x := later
等价于:
y := foo bar
x := later
另外 ?= 含义为:没有定义则赋值
FOO ?= bar
等价于
ifeq ($(origin FOO), undefined)
FOO = bar
endif
+= 是为变量后面追加字符

变量替换
$(var:a=b),是将 var 变量中每一个单词后面的 a 替换为 b
$(var:suffix=replacement)
等价于
$(patsubst %suffix,%replacement,$(var))
$(foo:%.o=%.c) ,由于出现了 %, 其功能和 patsubst 等价

$(var:pattern=replacement)
等价于
$(patsubst pattern,replacement,$(var))


2026年全国青少年信息素养大赛算法应用主题赛(C++赛项初赛模拟卷1及答案解析) 阅读详情

相关推荐

在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

最近在做科研训练的时候配置了HKUST-Aerial-Robotics实验室的VINS_Fusion代码项目,经历了一些编译报错的问题,在网上查找的时候博客内容良莠不齐,且实质针对性意见不多,于是在此记录下自己配置期间遇到的一些共性问题,留作自己日后参考和大家的交流学习。

wyr1849089774的博客 8269

Makefile详解笔记

https://blog.51cto.com/11134889/2108086

u014583317的博客 908

从零搭建AGV避障系统:我用激光雷达+树莓派视觉模块踩过的那些坑

本文分享了基于树莓派与国产激光雷达从零搭建低成本AGV避障系统的实战经验。针对复杂仓库环境,详细剖析了激光雷达数据噪声、视觉模块算力瓶颈、IMU漂移等核心挑战,并提供了多传感器融合、软件架构设计与避障决策的具体解决方案,为中小型自动化改造项目提供了宝贵参考。

git9versioner的博客 983

Makefile总结

Makefile总结 <目标文件> : <前置条件 【TAB键】 <commands> 第一行冒号前面的部分,叫做"目标"(target),冒号后面的部分叫做"前置条件"(prerequisites);第二行必须由一个tab键起首,后面跟着"命令"(commands)。"前置条件"和"命令"都是可选的,但是两者之中必须至少存在一个。 目标可以是一个文件名,也可以是多个文件名,之间用空格分隔。 目标还可以是某个操作的名字,这称为"伪目标" 不声明为伪目标.PHONY的情况下,如

qq_44342234的博客 647

ncl泰勒图(均方根误差、标准差、相关系数)

ncl泰勒图(均方根误差、标准差、相关系数)

weixin_61281699的博客 8007

基于USB总线的虚拟摄像头(UVC)原理简介

前面文章中我们分析了虚拟声卡的实现,在文章中我们展示了创建一个虚拟麦克风和虚拟扬声器的技术原理。完成了音频的虚拟化之后,这里就要谈论一下对于视频的虚拟化了——虚拟摄像头的实现。关于虚拟麦克风和虚拟扬声器的实现,可以参考。虚拟摄像头应用也是非常普遍的,例如云桌面远程摄像头的实现,直播技术。目前对于虚拟摄像头有三种实现方式:DirectShow虚拟摄像头,这个是一种比较古老的技术;在新版本应用中,该项技术基本失效了,尤其是UWP框架程序,DirectShow虚拟摄像头就失效了。

tianxilink的博客 5416

makefile双冒号规则

双冒号规则就是使用“::”代替普通规则的“:”得到的规则。双冒号规则允许在多个规则中为同一个 目标指定不同的重建目标的命令, 1、Makefile中多规则目标的规则类型必须一致,要么都是普通规则,要么都是双冒号规则。而不允许 一个目标同时出现在两种不同的规则中。 2、多规则目标的每个规则会被独立的处理, 而不是像普通规则那样合并所有的依赖到一个目标文件。 这就意味着对这些规则的处理就像多个不 同的

qwaszx523的博客 871

华为OD机试 - 城市聚集度(Python/JS/C/C++ 2025 A卷 200分)

华为OD机试 2025A卷题库疯狂收录中,刷题。

学Java,找哪吒 1131

Makefile赋值符号的使用——"=" ":=" "?=" "+="

"=" ":=" "?=" "+="这几个都是常用赋值运算符,那么他们有什么区别呢?

huqinwei的专栏 1万+

[QMT量化交易小白入门]-十二、QMT回测龙头打首板和连板的策略

class a():passA = a() #创建空的类的实例 用来保存委托状态field_list定义了需要的市场数据字段,而类a用于保存交易状态。

木头大左的博客 4759

使用R语言实战:构建Logistic回归模型

Logistic回归是一种基于概率的分类算法,它用于预测离散的结果变量(也称为响应变量或因变量)。与线性回归不同,Logistic回归的输出是一个概率值,通常在0和1之间。这使得它非常适合处理二分类问题。市场营销:预测客户是否会购买某个产品。医学研究:预测疾病的发生与否。信用风险评估:预测个人申请贷款的违约风险。社会科学:预测个人对某个政策的态度。

2301_79331230的博客 1140

makefile : 读懂 & 使用 makefile

1、 What is “makefile” : make命令执行时,需要一个makefile文件,用来告诉make命令需要怎么样的编译和链接程序 makefile其实就是make命令的配置文件 2、 makefile的规则 格式: target : prerequisites   command    白话 : 用 command 将 ...

POTATO的博客 2383

(9-2)离线强化学习:离线强化学习的主流方法

本文介绍了三种离线强化学习的主流约束策略优化方法:BCQ、CQL和Fisher-BRC,并通过CartPole环境进行性能比较。BCQ利用生成模型约束动作选择并引入扰动网络;CQL通过正则化Q值抑制对未见状态-动作对的高估;Fisher-BRC使用Fisher散度正则化策略分布。实验结果表明,三种方法各有优势,其中CQL表现最为稳定。文章还指出,为获得更好的性能,需要更大的数据集和更长的训练轮次。这些方法通过限制策略优化范围,有效提高了离线强化学习的稳定性和泛化能力。

码农三叔 1539

[makefile]makefile中 '=', ':=', '?=', '+='的区别

1. = 最基本的赋值。 需要注意的是:makefile全部展开之后,才会最终确定变量的值,如下例: val_1 = abc val_2 = $(val_1) val_1 = def 上例中,val_2的值是def,而不是abc 2. := 同样是赋值操作,与‘=’赋值不同的是,':=',赋值的结果取决与在makefile中的位置,如下例: val_1 := abc va

wwy599987的博客 406

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Makefile中的变量

来源:http://hi.chinaunix.net/?uid-14782631-action-viewspace-itemid-10165 参考:http://www.aka.org.cn/Lectures/001/Lecture-1/index.html  一:Makefile中变量定义的方式:  1.递归展开方式,递归展开方式定义的变量是在引用在该变量时进行替换的,即如果该变量包含了对

wu_wenhuan的专栏 546

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

makefile中的shell语法 || Makefile中的@

在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙。下面总结了一些。

IT的乐章 1495

嵌入式 Makefile中:=与?=与+=与=的区别$@,$^,$<区别

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为: ifdef DEFINE_VRE     VRE = “HelloWorld!” else endif ifeq ($(OPT),define)     VRE ?=“Hello World! First!” endif

mianhuantang848989的专栏 753

Makefile变量赋值

目录 文章目录目录@[toc]摘要1.赋值符:“=”2、赋值符“:=”3、赋值符“?="4、变量追加"+=" 摘要 本节主要记录Makefile的四种变量赋值使用。 1.赋值符:“=” 变量的真实值取决于它所引用的变量的最后一次有效值。 2、赋值符“:=” 从图 3.4.2.2 中可以看到此时的 curname 是 zzk,不是 zuozhongkai 了。这是因为赋值符“:=”不会使用后面定义的变量,只能使用前面已经定义好的,这就是“=”和“:=”两个的区别。 3、赋值符“?=" 4、变量追加

陌城烟雨 1085

Makefile学习

简述 Makefile是一种被用作自动化编译,Makefile定义了一系列的规则来指定文件编译顺序,以及哪些文件需要重新编译,甚至可以像shell脚本一样执行操作系统的命令。 本篇只是简单概念及使用方式,详细的可参考:C语言中文网-Makefile教程 规则 普通规则 target... : prerequisites ... command ...... 模块 描述 target 可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个标签(l

菜鸟不会飞 4486

10个mbake配置技巧,让你的Makefile风格统一又高效

mbake是一款强大的Makefile格式化和检查工具,它能帮助开发者自动规范Makefile代码风格,提升团队协作效率。本文将分享10个实用的mbake配置技巧,让你的Makefile保持一致风格的同时更加高效。 [![mbake VSCode扩展图标](https://raw.gitcode.com/gh_mirrors/bake11/bake/raw/20dd3cd7194ab94c6fe

gitblog_00725的博客 455

makefile中":="和“=”的区别

在makefile中,经常能看到这种赋值方式: MyNumber := 123 这种方式洋名叫做expansion assignment, 翻译过来叫扩展赋值, 我一般就叫冒号等号。这位同学就问了,那么它和普通的等号有啥不一样捏?咱们废话少说,直接看代码。 ANIMAL = FROG VAR = "$(ANIMAL) DOG CAT" ANIMAL = TIGERtest: ...

weixin_30532837的博客 84

uboot 编译解析

1、makefile MKCONFIG := $(srctree)/mkconfig export MKCONFIG %_config:: outputmakefile @$(MKCONFIG) -A $(@:_config=) ######################################################################

storyteller的博客 480

makefile 知识点

1 C文件包含的头文件修改了,但C文件不重新编译 解决方法 【Linux + Makefile】Makefile的高阶用法:解决C文件包含的头文件修改了,但C文件不重新编译的问题 https://blog.youkuaiyun.com/szullc/article/details/85038875 2 编译文件的原因是文件更新了! 我们平时修改了文件,文件就更新了,就可以重新make了。 ...

aningxiaoxixi的博客 490

make和makefile

目录 makefile是什么? makefile的编写 stat查看makefile的更新 伪目标 约定俗成的伪目标 自定义变量和系统变量 makefile中自定义变量 系统变量 makefile是什么? 通常一个大型程序是由多个程序模块文件构成的,按照其功能划分,模块文件会分布在不同的目录 中。模块文件之间有包含头文件、调用函数的情况,它们之间存在依赖关系。 而makefile中就存放着这些函数的依赖关系。make命令通过解析makefile文件,自动找出变更的文件以及依赖此.

_Cx330的博客 261

(一)Makefile学习

Makefile学习 意义:项目管理,方便编译连接。用于大项目:uboot和linux kernel,都有很多个文件组成,因此都要通过Makefile来管理。所以要分析uboot必须对Makefile了解。 一、Makefile的组成与使用 Makefile由:目标、依赖、命令组成; 目标:就是生成的东西。 依赖:原材料。 命令:加工方法。 命令就是加工方法,所以用make 如: exe(目标): a.c b.c(依赖) gcc a.c b.c -o exe(命令) Makef.

qq_30860901的博客 846
上一篇: linux各文件夹的作用
下一篇: awk
路人甲三号
博客等级 码龄18年 8粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值