Makefile的几个赋值运算符(转:笔记)
http://www.cnblogs.com/pengdonglin137/p/3801060.html
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?
新建一个Makefile,内容为:
ifdef DEFINE_VRE
VRE = “Hello World!”
else
endif
ifeq ($(OPT),define)
VRE ?= “Hello World! First!”
endif
ifeq ($(OPT),add)
VRE += “Kelly!”
endif
ifeq ($(OPT),recover)
VRE := “Hello World! Again!”
endif
all:
@echo $(VRE)
敲入以下make命令:
make DEFINE_VRE=true OPT=define 输出:Hello World!
make DEFINE_VRE=true OPT=add 输出:Hello World! Kelly!
make DEFINE_VRE=true OPT=recover 输出:Hello World! Again!
make DEFINE_VRE= OPT=define 输出:Hello World! First!
make DEFINE_VRE= OPT=add 输出:Kelly!
make DEFINE_VRE= OPT=recover 输出:Hello World! Again!
从上面的结果中我们可以清楚的看到他们的区别了
= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
之前一直纠结makefile中“=”和“:=”的区别到底有什么区别。
1、“=”
make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:
x = foo
y = $(x) bar
x = xyz
在上例中,y的值将会是 xyz bar ,而不是 foo bar 。
2、“:=”
“:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
x := foo
y := $(x) bar
x := xyz
在上例中,y的值将会是 foo bar ,而不是 xyz bar 了。
转载于:https://www.cnblogs.com/yvivid/p/3804639.html
Makefile的几个赋值运算符(转:笔记)相关推荐
- 嵌入式之Makefile学习笔记
注: 以下内容来自朱老师物联网大讲堂课件 1. 为什么需要Makefile 工程项目中c文件太多管理不方便,因此用Makefile来做项目管理,方便编译链接过程. 在一个正式的软件项目中,由很多个.c ...
- Python入门学习笔记2
一.赋值 1.链式赋值 2.系列解包赋值,实现变量互换 a,b,c=4,5,6 b 5 print(a,b) 4 5 a,b=b,c c 6 3.数字运算 加减乘除 + - * / // 整除 7// ...
- 【Linux + Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别
笔者常年在Linux环境编程,经常在项目中与Makefile打交道,最近总结了几个Makefile的小的知识点,分享给大家. 通过阅读本文,你将了解到以下知识: 1.Makefilke中的.PHONY ...
- x210:uboot和系统移植
注:本文是对朱老师uboot和系统移植课程的备忘引导性笔记,主要是为了能够在学完后快速回忆起相关内容.本文主要记录了一些关键易忘性知识点并包含少量理解性内容,遵循尽量精简的原则,以尽量少的篇幅概括整个 ...
- 第一篇Java基础知识 复习博客
目录 学习笔记(p14) java的基本格式 学习笔记(p15) java中的注释 学习笔记(p16) Java中的标识符 学习笔记(p17) java中的关键字 学习笔记(p18) Java ...
- makefile经验笔记
makefile笔记 字符需要转意,输入字符需要转意,输入字符需要转意,输入$替换 x=a b c d 方式直接建立数组,而shell中需要加引号 变量需要用()或{}包围,而shell中只能用{} ...
- Makefile学习笔记 - 我的CPP之路 - C++博客
Makefile学习笔记 - 我的CPP之路 - C++博客 Makefile学习笔记 Makefile学习笔记 先列出一个很简单的Makefile例子: --------- hd.cpp #incl ...
- linux添加自己的库,Linux学习笔记——例叙makefile 增加自定义共享库
Linux学习笔记--例说makefile 增加自定义共享库 0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己 ...
- C++阶段01笔记03【运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符)】
C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 3 运算符 3.1 算术运算符 示例1 示例2 示例3 3.2 赋值运算符 示例 3.3 比较运算符 示例 3.4 逻辑运算符 ...
最新文章
- oc75--不可变字典NSDictionary
- 王木匠,我服了你一半
- Oracle去除表中重复记录
- 1003 Dijkstra算法
- matlab与音频处理
- linux之如何在任意目录执行我常用的脚本文件
- git中使用emacs和vimdiff/Ediff工具
- 1. SVN (1)
- 搜狐校园“情感分析×推荐排序“算法大赛 AutoX方案 转载poteman
- LayoutInflater.inflate()方法的深入理解
- codevs2069 油画 — 动态维护优先队列
- 机器学习-推荐系统-利用用户标签数据
- AcWing每日一题2041. 干草堆
- htc e9pw android 6.0,HTC One E9+(E9pw 联通4G)一键ROOT教程,简单ROOT
- C#静默打印 PDF
- 3、Origin安装教程
- 论文投稿指南——什么是SCI,SSCI ,CSSCI
- 哈夫曼树原理及构造方法
- 一体机怎么修复音频服务器,电脑一体机没有声音怎么处理
- 数据结构(16)队列的顺序存储结构
热门文章
- cad批量偏移_永远都不会卸载的几款CAD插件,月入过万不要太轻松。
- java字节字符流实验报告_Java第09次实验(IO流)--实验报告
- ionic4 引入外部字体ttf
- htt:// ************不在以下 request 合法域名列表中,请参考文档:******************************
- ionic4 背景设置动态图片报错WARNING: sanitizing unsafe style value background-image:url
- 基于php程序系统设计,PHP程序静态分析系统的设计与实现
- 建行优盾制单重要还是复核重要_想秒批建行5万+白金信用卡,你得满足这些条件!...
- android百度地图根据点路线规划,Android 百度地图路径规划一直都是搜索不到结果...
- yum安装指定版本php,如何通过yum安装指定版本的PHP
- php v9 邮箱登陆,PHPCMS v9会员登录支持Email登录的实现方法