linux Makefile中的:=, =, ?=的区别

Makefile中=, :=, ?=和+=的含义 Makefile中=, :=, ?=和+=的含义1. 含义1.1 " = "1.2 " := "1.3 " ?= "1.4 " += "2. 实例   在Makefile语法中,时不时会见到各种“=”号的赋值语句,除了常见的“=”和“:=”,还有“?=”等   那么这些赋值等号分别表示什么含义呢? 1. 含义 1.1 " = " “=”是最普通的等号,然而在Makefile中确实最容易搞错的赋值等号,使用“=”进行赋值,变量的值是整个makefile中最后被指定的值。不太容易理解,举个例子如下: VI 阅读详情

:= 是立即变量赋值,在定义时值已经被确定

= 是延时变量赋值,只有在这个变量被使用时才展开,$(VAR)就是一种被使用


例

VAR_A=abcd

VAR_B=$(VAR_A)
VAR_C:=$(VAR_A)
VAR_A=cdef

此时,$(VAR_B)   为   cdef   (跟随VAR_A变化)。

$(VAR_C)   为   abcd   (不随VAR_A变化)。



?= 是条件赋值, 比如

foo ?= $(bar)

只有当foo变量还没有被定义的时候,才会将bar的值赋给foo。



Linux Makefile中赋值运算符=,:=,?=和+= 之间的区别 ### Date: 2017/4/17 ### Author: SoaringLee (1)  := 是立即变量赋值,在定义时值已经被确定;另外一种理解: “:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。 (2)  = 是延时变量赋值,只有在这个变量被使用时才展开,$(VAR)就是一种被使用 ; 另外一种理解:make会将整个m 阅读详情

相关推荐

【Linux + Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别

【Linux + Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别,本文带你了解一下!

一个专注于嵌入式IoT领域的架构师,深耕IoT领域多年,深度掌握IoT领域的相关技术栈,包括但不限于RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、嵌入式IoT系统的架构设计等。 9万+

Makefile中4种赋值运算符(=、:=、?=、+=)

这四种赋值运算符在Makefile中的作用都是赋值,但是有一些细节上的差异,如果不是经常解决Makefile的编写,很容易混淆,特在此总结以便以后查阅。

weixin_42031299的博客 5633

面试题-手撕NMS(非极大值抑制)

非极大值抑制(Non-Maximum Suppression,NMS)是一种常用于目标检测和计算机视觉中的算法,用于去除重叠的边界框,保留最可能是真实目标的边界框。其核心就是对一组检测框,找出其中属于同一个类别且分数最高的那个框,然后把和这个框的IOU值大于阈值的那些框都删掉。

zhaoyqcsdn的博客 1108

在Makefile中,?= 和 := 的区别?

如果在Makefile中已经存在对 NAME`的赋值,那么这行代码不会改变 NAME 的值。= 进行赋值时,会进行延迟赋值,也就是说,只有在变量之前没有被赋值的情况下,才会将右侧的值赋给变量。而 := 用于立即赋值,并且不受后续重新赋值的影响。当使用 := 进行赋值时,会立即将右侧的值赋给变量,并且该赋值操作会忽略之后对变量的重新赋值操作。不管之后是否有其他对 OBJS 的赋值,它的值都会保持为 "start.o main.o"。= 和 := 是两种不同的变量赋值操作符,它们有不同的用途和行为。

weixin_47156484的博客 1490

【机器人】线性方程最小二乘解法对机械臂DH参数进行标定

1.前言 看了一篇文章,觉得里面的DH参数标定法讲的很清晰,便使用Matlab复现了一下,效果还可以,特写此文记录。 2.原理 2.1.误差最佳值的最小二乘计算 有研究结果表明:几乎95%的机器人位置误差都是由机器人内部运动学的不准确描述引起的,所以对DH模型参数进行标定是很有必要的。 DH参数物理含义:选自《机器人学、机器视觉与控制-Matlab基础》 当DH参数确定后,我们...

要恰饭得嘛 1万+

excel 利用SUBTOTAL函数计算筛选后数列总和、均值、最大、最小值

表里有三个人,咱们需要筛选出三个人,并分别计算他们的总和值。 先看一下数据范围(A1:B27) 通过筛选找张三。 按照上图所示输入函数,选择9,求和。 然后按照函数输入即可。 就能计算出结果。 筛选项选择王五,就会自动计算王五的总和。 筛选到李四就会自动计算李四的总和。 如果把9改成1,就是自动计算筛选出来的均值结果,如下图所示。 如果改成4就是取筛选项的最大值,选择5就是取最小值。 ...

yuanYW7556的博客 3万+

makefile简单入门

<br />1、弄清楚这个技术可以干什么,包括哪些知识点,通过论坛,博客得知。<br />2、寻找资料进行系统的学习,通过电炉,迅雷来获取PPT,CHM,视频,DOC,原代码,书籍等<br />3、模仿做一两个项目寻找不足,进行突破上更高一台阶。<br /> <br />注意:寻找资料和整理资料是衡量一个人专业水平高低的重要依据。

超越 1351

AJ-Report开源数据大屏存在远程命令执行漏洞

该平台可以通过post方式在validationRules参数对应值中进行命令执行,可以获得服务器权限,登陆管理后台接管大屏。如果被攻击者利用,危害后果十分严重。

swordheart的博客 387

Makefile中:=, =, ?=和+=的含义

“=” “=”是最普通的等号,然而在Makefile中确实是最容易搞错的赋值等号。使用”=”进行赋值,变量的值是整个makefile中最后被指定的值。不太容易理解,举个例子如下: VIR_A = A VIR_B = $(VIR_A) B VIR_A = AA 经过上面的赋值后,最后VIR_B的值是AAB,而不是AB。在make时,会把整个makefile展开,拉通决定变量的值 “:=” ”:=”就表示直接赋值,赋予当前位置的值。举个例子说明: VIR_A := A VIR_B := $(VIR_A.

sinat_34241861的博客 7390

数学建模学习(75):全局敏感性分析Morris 方法

敏感性分析 (SA) 是分析不同应用条件下模型行为的基本实践。提出了许多 SA 技术,从简单的筛选方法到计算成本高昂的基于方差的方法。本篇内容我们通过将 Morris 方法来对模型进行分析。

全栈川川 1万+

新手必看:C#调用YOLO模型完成图片/视频目标检测(上位机版)

新手学习C#调用YOLO模型,核心是先把基础流程跑通,再逐步优化。图片检测是基础,视频检测就是在图片的基础上加循环和线程,而上位机的实际项目,就是在这个基础上适配工业硬件和业务需求。本文的代码都是新手能直接复制运行的,如果你运行时遇到问题,先检查前期准备是否到位,再看避坑指南。记住,新手别追求一步到位,先实现功能,再慢慢优化性能和界面。等你能熟练调用YOLO模型后,再去研究模型训练、量化优化等进阶内容,会轻松很多。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 987

Linux Makefile中的:=, =, ?=的区别

:= 是立即变量赋值,在定义时值已经被确定 = 是延时变量赋值,只有在这个变量被使用时才展开,$(VAR)就是一种被使用  例 VAR_A=abcd VAR_B=$(VAR_A)  VAR_C:=$(VAR_A)  VAR_A=cdef  此时,$(VAR_B)   为   cdef   (跟随VAR_A变化)。  $(VAR_C)   为

jerry_csdn_zhou的博客 446

交换机初始化配置详解

MGMT或称MGT(Management Port,管理端口)是一个可以连接计算机的三层主机端口,如下图所示。只需使用一条双绞线跳线,就可以将计算机的以太网端口与交换机的MGMT端口连接在一起,实现对交换机的配置与管理。也就是说,可以使用MGMT端口代替Console端口实现对交换机或交换机堆叠的网络管理。MGMT端口既可用于交换机的初始化,也可以在交换机初始化完成后,以Telnet、Web浏览器或Cisco CNA方式进行管理。当将计算机连接到独立的交换机时,连接方式如下图所示。

悦分享 1995

Linux Shell脚本攻略:shell中各种括号()、(())、[]、[[]]、{}的作用;Linux Makefile中的:=, =, ?=的区别

技巧小结: 字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格 算数运算用双小括号(( )) ;shell命令及输出用小括号( )——左右不留空格 快速替换用花括号{ }——左右留空格 反单引号起着命令替换的作用` ` ------------------------------------------------------------------------...

xiebingsuccess的博客 952

PCL 三维重建 泊松曲面重建算法

本文介绍了基于泊松曲面重建算法的三维重建过程。泊松重建是一种利用点云数据生成三维表面的算法,它基于点云的法线估计和泊松方程的求解,能够生成光滑且连续的曲面模型。该方法适用于复杂形状和细节的表面重建。

纵马踏花向自由 1090

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Makefile 中:= ?= += =的区别

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

Yumin's Blog 371

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

linux Makefile中:= ?= += =的区别

总结: = 是最基本的赋值 := 是覆盖之前的值 ?= 是如果没有被赋值过就赋予等号后面的值 += 是添加等号后面的值 部分细节注意: 1、“=” make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子: x = foo y = $(x) ba...

dingdongkk~博客 6206

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【Linux + Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别(转)...

原文链接:https://blog.youkuaiyun.com/szullc/article/details/86556809 参考链接:https://blog.youkuaiyun.com/tonglin12138/article/details/88636170?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=dist...

weixin_42525096的博客 346

makefile中=、:=和+=的区别

经常有人分不清= 、:=和+=的区别 这里我总结下做下详细的分析: 首先你得清楚makefile的运行环境,因为我是linux系统,那么我得运行环境是shell 在Linux的shell里,shell只认识字符串,所以你就不要说整形什么的了。说值也不贴切。 先看+=是什么意思? 因为shell只认识字符串,所以这里应该不难联想到+=就是字符串连接的意思。相当于c语言的 strcat 举个例子: x本来是 U; x += SB; 那么运行结果就是 x为USB; 接着...

u014426028的博客 984

Linux makefile中的= := ?=操作符

Linux Makefile = := ?=

zhanghaiyang9999的专栏 1535

Makefile中赋值的探讨

在linux的配置时经常要更改Makefile中的一些变量,比如移植linux到arm中时的第一步就是修改根目录下Makefile中的编译器和目标平台    ARCH ?=arm    CROSS_COMPILE ?= arm-linux-   ,同样,我们还可能会看到 := 和 = ,那么到底这三种赋值方式有什么区别呢?前两天看见别人写过,感觉很有用,简练总结一下。          =

lowkeyway的专栏 1194

Linux Makefile中 = := ?=

:= 是立即标量赋值 在定义时已经被确定 =  是延时变量赋值 只有在这个变量被使用时才展开 ?= 是条件赋值 只有当变量还没有被定义的时候、才会将值赋值给?=左边的变量

fujianyuqiang的专栏 811

makefile中的=,:=和+=的理解

本文转自:http://blog.sina.com.cn/s/blog_7880f9830102w80f.html 经常有人分不清= 、:=和+=的区别  这里我总结下做下详细的分析: 首先你得清楚makefile的运行环境,因为我是linux系统,那么我得运行环境是shell 在Linux的shell里,shell只认识字符串,所以你就不要说整形什么的了。说值也不贴

Climbe的博客 701
上一篇: SmileRef参考文献生成工具最新发布,v1.0上线
下一篇: CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换
小耸
博客等级 码龄17年 33粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值