【Makefile由浅入深完全学习记录4】变量和不同的赋值方式
2018-03-07 11:16
330 查看
今天来学习Makefile中变量的不同的赋值方式!努力的意义就是让贫穷不再限制你的想象!加qq共同学习交流1126137994
makefile中的变量只代表文本数据(字符串)
makefile中的变量名规则
-变量名可以包含字符、数字、下划线
-不能包含 : # = 与空格
-变量名区分大小写
变量的定义和使用:
简单的例子(所依赖的文件func.c与main.c是第二篇文章里的点击链接查看:点击查看):
输入make,程序运行正常!!!
递归赋值(=)
条件赋值(?=)
追加赋值(+=)
不同赋值的方式的意义是什么?
简单赋值(:=)
*程序设计语言中的通用的赋值方式
*只针对当前语句的变量有效
递归赋值(=)
*赋值操作可能影响多个其他变量
*所有与目标变量相关的其他变量都会受到影响
条件赋值(?=)
*如果变量没有定义,才会使用赋值符号的值定义变量
*如果变量已定义,则赋值无效
追加赋值(+=)
*原变量值之后加上一个新值
*原变量值与新值之间由空格隔开
示例程序:
以上程序,分别运行每一个注释部分,得到的运行结果分别如下:
makefile中支持4中不同的变量赋值方式
简单赋值(:=)
递归赋值(=)
条件赋值(?=)
追加赋值(+=)
想一起探讨以及获得各种学习资源加我(有我博客中写的代码的原稿):
qq:1126137994
微信:liu1126137994
可以共同交流关于嵌入式,操作系统,C++语言,C语言,数据结构等技术问题。
1、概念
makefile中支持程序设计中变量的概念makefile中的变量只代表文本数据(字符串)
makefile中的变量名规则
-变量名可以包含字符、数字、下划线
-不能包含 : # = 与空格
-变量名区分大小写
变量的定义和使用:
简单的例子(所依赖的文件func.c与main.c是第二篇文章里的点击链接查看:点击查看):
CC := g++ Target := hello.out $(Target) all : func.o main.o $(CC) -o $(Target) func.o main.o func.o : func.c $(CC) -o func.o -c func.c main.o : main.c $(CC) -o main.o -c main.c .PHONY : rebuild clean all rebuild : clean all clean: rm *.o $(Target)
输入make,程序运行正常!!!
2、变量的不同的赋值方式
简单赋值(:=)递归赋值(=)
条件赋值(?=)
追加赋值(+=)
不同赋值的方式的意义是什么?
简单赋值(:=)
*程序设计语言中的通用的赋值方式
*只针对当前语句的变量有效
递归赋值(=)
*赋值操作可能影响多个其他变量
*所有与目标变量相关的其他变量都会受到影响
条件赋值(?=)
*如果变量没有定义,才会使用赋值符号的值定义变量
*如果变量已定义,则赋值无效
追加赋值(+=)
*原变量值之后加上一个新值
*原变量值与新值之间由空格隔开
示例程序:
# ex1 # x := foo # y := $(x)b # x := new # ex2 # x = foo # y = $(x)b # x = new # a = $(b) # b = $(c) # c = hello-makefile # ex3 # x := foo # y := $(x)b # x ?= new # ex4 # x := foo # y := $(x)b # x += new .PHONY : test test : @echo "x => $(x)" @echo "y => $(y)" @echo "a => $(a)" @echo "b => $(b)" @echo "c => $(c)"
以上程序,分别运行每一个注释部分,得到的运行结果分别如下:
3、总结
makefile中支持变量的定义和使用makefile中支持4中不同的变量赋值方式
简单赋值(:=)
递归赋值(=)
条件赋值(?=)
追加赋值(+=)
想一起探讨以及获得各种学习资源加我(有我博客中写的代码的原稿):
qq:1126137994
微信:liu1126137994
可以共同交流关于嵌入式,操作系统,C++语言,C语言,数据结构等技术问题。
相关文章推荐
- 【Makefile由浅入深完全学习记录6】Makefile中变量的高级主题上
- 【Makefile由浅入深完全学习记录1】认识make和makefile
- 【Makefile由浅入深完全学习记录3】伪目标的引入
- 【Makefile由浅入深完全学习记录8】条件判断语句
- 【Makefile由浅入深完全学习记录2】初识 makefile 的结构
- 变量和不同的赋值方式
- makefile专题:变量和不同的赋值方法
- Makefile知识点-1-----变量赋值的方式
- JavaScript学习记录day6-函数变量作用域、解构赋值与方法
- JavaScript学习记录day6-函数变量作用域、解构赋值与方法
- makefile 变量的赋值方式
- 新手学习记录2:makefile学习实践--自定义变量的引入
- Python开发学习笔记:Python多个变量同时赋值与多个变量分别单独赋值的不同
- 新手学习记录3:makefile学习实践--自动变量引入
- 4-变量和不同赋值方式
- makefile中的各种变量赋值方式
- Makefile 中四种变量赋值方式的区别
- makefile学习记录:空字符和""," "区别以及变量定义中多余的空格如何处理
- shell脚本的作用,shell脚本变量的定义和三种赋值方式【shell脚本的学习笔记一】
- php——学习笔记,变量声明以及3种赋值方式