Chinaunix首页 | 论坛 | 博客
  • 博客访问: 398913
  • 博文数量: 75
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 645
  • 用 户 组: 普通用户
  • 注册时间: 2015-06-03 18:24
文章分类

全部博文(75)

文章存档

2019年(1)

2018年(20)

2017年(14)

2016年(10)

2015年(30)

分类: LINUX

2016-02-24 22:43:49

makefile中变量的赋值,我们就避免不了要选择=、:=、?=、+=这四种中的一个来对变量进行赋值!这四种有什么区别呢?我们要如何选择?下面对这四种进行简单的介绍,掌握它们的用法!

1、= 是最基本的赋值

点击(此处)折叠或打开

  1. VAR=hello

  2. all:
  3.     echo $(VAR)
make执行:
root@tay:/home/tay/code/mk# make
echo hello
hello

2、:= 是覆盖之前的值

点击(此处)折叠或打开

  1. VAR=hello
  2. VAR:=good
  3. all:
  4.     echo $(VAR)
make执行:
root@tay:/home/tay/code/mk# make
echo good
good

3、?= 是如果没有被赋值过就赋予等号后面的值

点击(此处)折叠或打开

  1. VAR?=hello

  2. all:
  3.     echo $(VAR)
make执行:
root@tay:/home/tay/code/mk# make
echo hello
hello

点击(此处)折叠或打开

  1. VAR=hello
  2. VAR?=good

  3. all:
  4.     echo $(VAR)
make执行:
root@tay:/home/tay/code/mk# make
echo hello
hello

4、+= 是添加等号后面的值

点击(此处)折叠或打开

  1. VAR+=hello
  2. VAR+=good

  3. all:
  4.     echo $(VAR)
make执行:
root@tay:/home/tay/code/mk# make
echo hello good
hello good

通过上面的小代码,我们也对=、:=、?=、+=有一个大概的了解!其实说到这里还是很多人分不清=和:=的区别,下面主要讲解下=和:=的区别!

看下下面两个例子:

点击(此处)折叠或打开

  1. VAR=hello
  2. VAR1=$(VAR):good
  3. VAR=JAR

  4. all:
  5.     echo $(VAR1)
make执行:
root@tay:/home/tay/code/mk# make
echo JAR:good
JAR:good

点击(此处)折叠或打开

  1. VAR=hello
  2. VAR1:=$(VAR):good
  3. VAR=JAR

  4. all:
  5.     echo $(VAR1)
make执行:
root@tay:/home/tay/code/mk# make
echo hello:good
hello:good

通过上面的例子,我们可以知道:

1、“:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
2、“=”表示变量的值决定于整个makefile展开后的最终值,而不是它在makefile中的位置。






阅读(1708) | 评论(0) | 转发(0) |
0

上一篇:linux环境变量

下一篇:dd命令的用法

给主人留下些什么吧!~~