Makefile中的3个赋值符号“=”“:=”“?=”和一个追加符号"+="
2021/6/9 18:51:00
本文主要是介绍Makefile中的3个赋值符号“=”“:=”“?=”和一个追加符号"+=",对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、首先学习Makefile需要明确一个概念:
make 命令会为 Makefile 中的每个以 TAB 开始的命令创建一个 Shell 进程去执行。
2、赋值符号“=”
代码:
name = maykolo
curname = $(name)
name = len
print:
@echo curname = $(curname)
输入make后,结果:
得到结论:
赋值符号“=”,是将最后一次的结果赋值给“name” 变量。
3、赋值符号“:=”
代码;
name = maykolo
curname := $(name)
name = len
print:
@echo curname = $(curname)
输入make后,结果:
得到结论:
赋值符号“:=”,不会使用后面定义的变量,使用距离引用变量的最新一次的变量结果。看如下:
name = maykolo
name = hanxiaojie
curname := $(name)
name = len
print:
@echo curname = $(curname)
结果:
4、赋值符号“?=”
代码:
name = maykolo
curname ?= $(name)
name = len
print:
@echo curname = $(curname)
输入make后:
得到结论:
如果变量 curname 前面没有被赋值,那么此变量就是“ len”,如果前面已经赋过值了,那么就使用前面赋的值。估计有的人会在这块迷糊,看到认真的人,肯定能明白,不认真的人就会问为什么不是“maykolo”。下面解答:
代码:
curname = hanxiaojie
name = maykolo
curname ?= $(name)
name = len
print:
@echo curname = $(curname)
输入make后:
结论;仔细看我前面的话,是在判断“curname”变量而不是在判断“name”变量。第一次的那个代码相对于先使用赋值符“=”符号,给curname赋值len,后面判断前面有没有赋值,那前面已经赋值过了,就肯定是得到的结果是len。如果还是不理解,多添加几个变量自己多体会体会。
5、“+=” 这是一个变量追加符号.
Makefile 中的变量是字符串,有时候我们需要给前面已经定义好的变量添加一些字符串进去,此时就要使用到符号“ +=”,比如如下所示代码:
name = good
print:
@echo $(name)
结果:
然后使用追加符:
name = good
name += nice
print:
@echo $(name)
结果:
这篇关于Makefile中的3个赋值符号“=”“:=”“?=”和一个追加符号"+="的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南
- 2024-09-26Springboot微服务资料入门教程