2.变量
来源:互联网 发布:北京哪里有mac专柜 编辑:程序博客网 时间:2024/05/01 19:24
变量的作用域
局部变量:在规则中声明的变量为局部变量。自动化变量是局部变量。
# 此时CFLAGES的值是:-gprog: CFLAGES = -g
- 全局变量
赋值符号
= 赋值:= 赋值,但不使用未定义的变量+= 追加赋值override 修饰符,用来保护变量的值。使用该修饰符的变量,其值无法在命令行中进行修改。
自定义变量
自定义的变量跟C语言中的宏一样,文件执行前要进行替换。声明时要赋初值,书写时字符串之间用空格隔开。
SRC_C = main.c add.c sub.c
变量可以用来相互赋值。甚至可以使用还未定义的变量进行赋值。
OBJ = $(patsubst %.c, %.o, $(SRC_C))SRC_C = main.c add.c sub.c
避免使用未定义的变量进行赋值可以使用:=
。
# OBJ的值为空OBJ := $(patsubst %.c, %.o, $(SRC_C))SRC_C = main.c add.c sub.c
变量一些特殊的使用方法
赋值是进行替换
# 赋值时进行替换的两种方法SRC_C = main.c add.c sub.cOBJ = $(SRC_C:.c=.o)# 通过**模式匹配**进行替换OBJ = $(SRC_C:%.c=%.o)
类似宏的用法
# all的值为:Tonymy_friend = Tonyfirst = mysecond = friendall = $($a_$b)
自动化变量
在前面已经提到过,自动化变量为局部变量。
- $@:目标文件集,
sef.o
- $^:依赖文件集,删除了重复的文件名。
sef.c
$+:依赖文件集,未删除重复的文件名。
sef.o: sef.c gcc -c %^ -o $@
$<:依赖文件集,注意是一个一个的取出来。
add.c sub.c sef.c
# 假设当前目录下有`add.c sub.c sef.c`文件add.o sub.o sef.o: %.o: %.c gcc -c %< -o %@
$*:“%”及其以前的部分。
- $?:比目标新的依赖文件集。
有特殊意义的变量
MAKECMDGOALS —— 这个变量中会存放你所指定的终极目标的列表,“MAKECMDGOALS”,这个变量中会存放你所指定的终极目标的列表
0 0
- 2. 变量
- 2.变量
- 2.变量
- 2. 字符串变量
- 2. 外部变量
- 2. PHP变量
- 2.类型和变量
- 2.JavaScript的变量
- 2.UE4的变量
- 2.shell变量
- 变量
- 变量
- 变量
- 变量
- 变量
- 变量
- 变量
- 变量
- 处理TAP国际漫游话单的几种类库使用方法
- 关于conversation generation的论文笔记
- 1.认识Makefile文件
- 2015年终总结
- python实现简单爬虫功能
- 2.变量
- STM32_DAC输出电压
- FZU Problem 2231 平行四边形数
- LeetCode 91 Decode Ways(编码方式)(*)
- 嵌入式linux入门一
- 文件权限
- java多线程学习-java.util.concurrent详解(三)ScheduledThreadPoolExecutor
- kmean算法理解
- 循环最大子段和