makefile使用笔记(二)变量
By francis_hao Oct 30,2017
makefile中可以使用变量,变量有多种类型,下面分别介绍
简单变量
简单变量的命名规则和c语言一致。
给变量赋值就表示创建了这个变量,使用变量时需使用$()或${}这样的形式。
变量的赋值有几种不同的形式
|
= |
递归扩展的变量赋值,仅当在变量被使用的时候才去扩展。变量可以先使用后赋值 例如: a=$(b) b=$(c) c=d 在一系列的赋值过后,a的值就是$(b)。 只有在使用a的时候,才会一步步的扩展a=$(b)=$(c)=d |
|
:= |
简单扩展的变量赋值,变量立即扩展,变量需要先赋值再使用 例如: a=$(b) b=$(c) c=d 在一系列的赋值过后,a的值是'',也就是空。因为在执行a=$(b)的时候,就要立即扩展,而此时b还没有被赋值,也就是空的。 |
|
?= |
如果变量之前没有被定义,则执行赋值操作,否则什么也不做 |
|
+= |
追加变量值 如果变量之前没有被定义过,那么+=自动变成=。 如果变量之前有过赋值操作,就进行追加赋值,赋值属性继承之前的赋值操作(=/:=) |
自动化变量
自动化变量是指符合某一规则或模式的值
|
$@ |
表示规则中的目标 |
|
$< |
依赖目标中的第一个目标文件?? |
|
$? |
所有比目标新的依赖,以空格分隔 |
|
$^ |
所有的依赖目标的集合,以空格分隔,若有重复只保留一份。 |
|
$+ |
所有的依赖目标的集合,以空格分隔,不去除重复的 |
|
$* |
表示目标模式中%及其以前的部分,abcd.v -> %.v ->abcd make可以识别一些常见的后缀名,比如hello.o对应的$*就是hello |

本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/7757822.html
参考
【1】 跟我一起写Makefile 陈皓 http://blog.csdn.net/haoel/article/details/2886/
makefile使用笔记(二)变量的更多相关文章
- 精读《javascript高级程序设计》笔记二——变量、作用域、内存以及引用类型
变量.作用域和内存问题 执行环境共有两种类型——全局和局部 作用域链会加长,有两种情况:try-catch语句的catch块,with语句. javascript没有块级作用域,即在if,for循环中 ...
- C#笔记(二)变量
C#把数据类型分为两种 ● 值类型 ● 引用类型 从概念上看:其区别是值类型直接存储其值,而引用类型存储对值的引用 这两种类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上 如果变 ...
- Go语言学习笔记(二) [变量、类型、关键字]
日期:2014年7月19日 1.Go 在语法上有着类 C 的感觉.如果你希望将两个(或更多)语句放在一行书写,它们 必须用分号分隔.一般情况下,你不需要分号. 2.Go 同其他语言不同的地方在于变 ...
- 《C++ Primer》读书笔记(二)-变量和基本类型
bool类型与其他类型转换时,0为false,1为true 浮点数赋值给整数的时候,进行近似处理,结果仅保留浮点数小数点之前的部分 整数赋值给浮点数的时候,小数部分记为0,如果该整数超过了浮点类型的容 ...
- tensorflow学习笔记二----------变量
tensorflow里面的变量表示,需要使用特定的语法进行.如果想构造一个行(列)向量,需要调用Variable函数进行.对两个变量进行操作,也要调用相应的函数. import tensorflow ...
- C#笔记(二)变量之预定义的引用类型
1.object类型 在C#中, object类型就是最终的父类型,所有内置类型和用户定义的类型都从它派生而 来. 这样, object类型就可以用于两个目的了: 可以使用object引用绑定任何子类 ...
- jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}
笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...
- Go语言学习笔记二: 变量
Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...
- Makefile笔记之一 ------ 变量的引用及赋值
1.变量的引用方式: "$(变量名)"或者"¥{变量名}" 例如: ${Objs}就是取变量Objs的值 注意: 当变量名为单字符是可以采用:"$a& ...
- <转>Windows平台下Makefile学习笔记(二)
本文转自:http://blog.csdn.net/clever101/article/details/8286066 上次我们学习了怎么用Makefile编译一个控制台工程.这次我们学习一下如何使用 ...
随机推荐
- LeeCode_01_Two sum
Two Sum Given an array of integers, return indices of the two numbers such that they add up to a spe ...
- spark的运行方式——转载
本文转载自: spark的运行方式 本文主要讲述运行spark程序的几种方式,包括:本地测试.提交到集群运行.交互式运行 等. 在以下几种执行spark程序的方式中,都请注意master的设 ...
- rest_framework组件
认证组件 局部认证 在需要认证的视图类里加上authentication_classes = [认证组件1类名,认证组件2类名....] 示例如下: seralizers.py from rest_f ...
- Binary Tree(生成二叉树)
Description Background Binary trees are a common data structure in computer science. In this problem ...
- 互评Alpha版本——基于spec评论作品
组名:可以低头,但没必要 组长:付佳 组员:张俊余 李文涛 孙赛佳 田良 于洋 刘欣 段晓睿 一.二次元梦之队----I DO 在测评该项目时,我们组索要了该组的apk程序,安装之后我就开 ...
- hdu1010--Tempter of the Bone(迷宫)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1010 Tempter of the Bone Time Limit: 2000/1000 MS (Jav ...
- javascript方法扩展
String.prototype.startWith = function(str){ return str.indexOf(str) == 0; }; var str = "abc&quo ...
- URL相关Web APIs
参考文档:MDN> Web API接口 > URLUtils MDN > Web API接口 > URL MDN > Web API接口 > Location MD ...
- TP中模型实例化
模型的实例化操作(重点) 模型虽然已经创建完成,但是由于模型的本质是一个类,类在使用的时候需要实例化操作. 5.1.普通实例化方法 普通实例化方法是指通过自己编写代码来new一个对象. $obj = ...
- Sql Server统计报表案例
场景:查询人员指定年月工作量信息 USE [Test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo ...