Makefile之“=”、":="、“+=”、“?=”中几个的区别:

1.”=“符号

 =表示个变量赋值;

注意:

 当变量A被赋值给变量B时(B=A),这里A可以的这条指令之前定义的,也可以是这条指令之后定义的;

 但:最终变量B的值取决于Makefile最后的赋值;

 例如:

 x =
 y = $(x)
 x =
 all:
   ehco $(y)

 最后输出的结果是2

2.":="符号

 :=也是变量赋值符号;

注意:

 当变量A被赋值给变量B时(B=A),这里变量A必须是这条指令之前定义的;

例子:

B := $(A) bar
A := MY
all:
  @echo $(B)

输出的结果是:bar

B = $(A) bar
A = MY
all:
  @echo $(B)

输出的结果是:MY bar

这就是“=”和“:=”的区别;

3.“+=”符号

 符号意义:继续添加等号后面的值

4.“?=”符号

 B ?= A

 符号意义:变量B没有被定义,则执行赋值;

      变量B如果在这指令之前已经被定义,则这条语句不执行;

A =3
B = 2
B ?= $(A)
all:
echo $B

输出的结果是2

A =
B ?= $(A)
all:
echo $B

输出的结果是3

  

最新文章

  1. 管理系统-------------SSH框架书写登录和显示用户
  2. 【T电商 1】Nginx服务器搭建
  3. Ps 之路 更改前景色
  4. gitlab&fengoffice的ldap配置
  5. mysql命令分类(DML、DDL、DCL)
  6. 修改linux文件/文件夹权限
  7. 线程控制之线程和fork
  8. 用dubbo+zookeeper+spring搭建一个简单的http接口程序
  9. freemark页面中获取list循环中的counter
  10. ice 有道德的黑客!
  11. JSP基本语法--实例演练
  12. Tp5.0 PHPMailer邮件发送
  13. 可以用 Python 编程语言做哪些神奇好玩的事情?
  14. 微信小程序 登录流程规范解读
  15. ElasticSearch入门 附.Net Core例子
  16. 01背包 || BZOJ 1606: [Usaco2008 Dec]Hay For Sale 购买干草 || Luogu P2925 [USACO08DEC]干草出售Hay For Sale
  17. vim字符查找和替换
  18. Python shutil 模块
  19. wpgcms---流程控制
  20. JavaEE Servlet 学习笔记

热门文章

  1. Vuex, api, SSR, module
  2. Java API操作ZooKeeper
  3. 【bzoj2770】YY的Treap 权值线段树
  4. Rust安装配置
  5. 【NOI 2015网络同步赛】
  6. 树上莫队 SPOJ COT2
  7. 0-1背包问题(经典)HDU2602 Bone Collector
  8. [CQOI2018]异或序列 (莫队,异或前缀和)
  9. 汕头市队赛 SRM 09 C 撕书
  10. Opengl场景中加光照包含几个步骤