在Linux的makefile中,可以使用=,:=,?=赋值语句,但是它们的含义是不同的。下面分别说明:

=

是变量在使用的时候才真正的把值赋给它,也就是说延迟赋值。

:=

即时赋值,不会等到真正使用的时候,而是在定义的时候就替换了。

?=

条件赋值,只有当这个变量在前面没有定义过的时候才执行赋值操作,否则什么也不错。

请看下面的示例代码:

VAR1 = 1234
VAR2 =$(VAR1)
VAR3 := $(VAR1)
VAR4 = 7890
VAR4 ?= $(VAR1)
VAR1 = 5678test:@echo VAR1 = $(VAR1)@echo VAR2 = $(VAR2)@echo VAR3 = $(VAR3)@echo VAR4 = $(VAR4)

执行效果如下:

VAR1 = 5678
VAR2 = 5678
VAR3 = 1234
VAR4 = 7890



Linux makefile中的= := ?=操作符相关推荐

  1. Linux C 中连接操作符##

    Linux C 中连接操作符## #include <stdio.h> #define test(x) test ## x #define DPRINT( fmt, args...) \ ...

  2. linux Makefile 中使用 shell命令

    在makefile中要使用shell 命令必须加shell 例如 $(shell pwd) ,不加的话是空值,例如下例中的M就是空值 这个你写法如下:直接通过make 命令就可以运行下面的makefi ...

  3. Linux Makefile 中的陷阱【转】

    转自:https://blog.csdn.net/QQ1452008/article/details/52247944 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  4. Linux shell中比较操作符“==”与“-eq”对比

    在Linux shell编程中,经常会用到判断字符串是否相等,可用于判断字符串是否相等的操作符有'-eq'(相等), '-ne'(不等于), '-lt'(小于), '-le'(小于或等于), '-gt ...

  5. linux中eq的作用,Linux shell中比较操作符“==”与“-eq”对比

    在Linux shell编程中,经常会用到判断字符串是否相等,可用于判断字符串是否相等的操作符有'-eq'(相等), '-ne'(不等于), '-lt'(小于), '-le'(小于或等于), '-gt ...

  6. linux bash -eq,Linux shell中比较操作符“==”与“-eq”对比

    在Linux shell编程中,经常会用到判断字符串是否相等,可用于判断字符串是否相等的操作符有'-eq'(相等), '-ne'(不等于), '-lt'(小于), '-le'(小于或等于), '-gt ...

  7. linux c 编译 未定义的引用,c – Linux makefile中的未定义引用

    我想在linux下构建我的应用程序,但我无法使用我的makefile来实现它. 问题是我要链接的静态库.我得到了很多"未定义的引用"错误消息,如: undefined refere ...

  8. linux Makefile中 make -C和M=的作用

    当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile; M=$(PWD) 表明然后返回到当前目录继续读入.执行当前的Makefile. 例如: make ...

  9. 如何在Linux kernel Makefile中添加宏定义

    如何在Linux kernel Makefile中添加宏定义: CFLAGS_object.o += -DMACRO_NAME 在编译object.o时定义宏MACRO_NAME,在kernel中添加 ...

最新文章

  1. Django配置celery执行异步任务和定时任务
  2. Web Intents:Google的内部WebApp互联机制
  3. XML解析中的namespace初探
  4. 【项目升级】集成Quartz.Net Job实现(一)
  5. 【.NET Core 3.0】框架之十二 || 跨域 与 Proxy
  6. 打卡学习 | Redis原理应用-线程IO模型
  7. python数据预测模型算法_《python机器学习—预测分析核心算法》:构建预测模型的一般流程...
  8. JAVA加载 编译 运行,在Java 7中编译的加载/运行类6
  9. VelocityTracker使用
  10. PS去掉图片上的文字
  11. MySQL闪回工具之my2sql
  12. 深度学习卷积算法指南
  13. 多领域 ASR 英语语料库——GigaSpeech 基本介绍——附有效下载教程
  14. 网络通信技术(TCP/IP)
  15. 利用积分区域的对称性计算重积分
  16. 基于DPABI和SPM12的任务态fMRI分析笔记1——预处理
  17. X-Powered-By: Servlet/3.0漏洞修复
  18. 如何区分一个FrameWork是动态链接库还是静态库
  19. vb中msgbox函数用法
  20. 词频统计(30 分)

热门文章

  1. php 升级php5,thinkphp5升级步骤
  2. 2020年北大中文核心期刊目录_中文核心期刊目录汇总(2020年4月发布)
  3. 超详细的CentOS7中安装Git,yum安装和自己编译安装
  4. python中api是指什么_python中API接口是什么
  5. 数据仓库建设从0到1-一文带你深入建设金融数仓体系
  6. MATLAB实战系列(十四)-如何通过YALMIP和CPLEX求解小规模(CVRP)路径调度问题(附MATLAB代码)
  7. 数据挖掘领域十大经典算法初探
  8. 基于MATLAB的dijkstra算法及其应用
  9. 计算机二级关于数据结构的题目,计算机二级MS OFFICE 练习题(一五三)
  10. android 只输入数字与小数点_Android金额输入框只允许输入小数点后两位效果