make eval builtin function
1 eval的返回值是空字符串,因此它可以用于Makefile的任何位置而不引起错误
2 eval函数的作用效果
生成Makefile的动态部分,即eval用于增加Makefile的构成部分。
也就是说,经过eval扩展之后的text部分,完全可以看成是Makefile的一部分,在make的时候,由make自己去解析执行,执行的过程完全等同于Makefile的其它静态部分。
3 eval内部嵌套一个函数的话,eval做了什么
首先是被嵌套的内部函数的扩展,在其扩展的结果上eval工作。
3.1 eval的expand
即普通的变量的扩展,对于双$$,去掉一个$。
3.2 eval将expand后得到的text当成是makefile的一部分
比如rules、比如变量赋值等等。
这样的好处是很显然的,Makefile就不是静态不变的了,而是动态的,可以生成的。
4 eval、call、define是完美组合,用于定义Makefile的动态部分
make eval builtin function的更多相关文章
- Python Built-in Function 学习笔记
Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...
- Python内置函数(Built-in Function)
直接查看编码以及示例: 1 """ 2 内置函数 Built-in Function 3 """ 4 5 # abs() 取绝对值 6 pr ...
- 解决warning: incompatible implicit declaration of built-in function 'malloc'
因为代码中使用了malloc函数和字符串函数.编译时出现错误 warning: incompatible implicit declaration of built-in function 'mall ...
- warning: incompatible implicit declaration of built-in function 'exit'
warning: incompatible implicit declaration of built-in function 'exit' 解决方法: 在头文件里 引入 stdlib 文件, #i ...
- warning: conflicting types for built-in function 'puts'
warning: conflicting types for built-in function 'puts' [编译器版本] arm-linux-gcc 3.4.1 [问题描述] 在做嵌入式底层开发 ...
- tuple built-in function
tuple tips: 1.对于Python中的tuple类型来说,他与其它的序列类型来讲最大的不同就是tuple是不可变的. 2.当你需要创建一个只有一个元素的tuple时,需要在元祖分隔符里面加一 ...
- incompatible implicit declaration of built-in function 'fabs'
形如: float a = -3.0; float b = fabs(a); 形参数据类型和实参数据类型完全一致,却还报警告: incompatible implicit declaration of ...
- eval 与 Function
var json='{"name":"lee","age":"15"}' function test () { var ...
- warning: incompatible implicit declaration of built-in function ‘exit’
出现这个错误,一般是程序中某个函数没有include相关的文件. EG. 出现这个错误是因为要使用exit()应该包含stdlib.h文件
随机推荐
- 使用JQuery.slideBox实现图片滚动效果
1.下载JQuery.slideBox和jquery插件,并引用 <link href="css/jquery.slideBox.css" rel="stylesh ...
- @locked_cached_property ---flask.helpers模块
源码: class locked_cached_property(object): """A decorator that converts a function int ...
- Halloween Costumes(区间DP)
Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he is planning t ...
- android L版本AAL新架构
[DESCRIPTION] 和之前KK版本相比,在L版本上面AAL的架构也有发生一些改变. 拿掉了之前KK平台上使用的MTK LABC,使用Android原生的自动背光功能. AALService内部 ...
- ES6__Symbol
/** * Symbol */ /** * 1 什么是 Symbol ? * Symbol,表示独一无二的值.它是 JS 中的第七种数据类型. */ // 基本的数据类型: Null Undefine ...
- poj1470 Closest Common Ancestors [ 离线LCA tarjan ]
传送门 Closest Common Ancestors Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 14915 Ac ...
- [Bzoj4566][Haoi2016]找相同字符(广义后缀自动机)
4566: [Haoi2016]找相同字符 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 861 Solved: 495[Submit][Statu ...
- Spoj 3267 DQUERY - D-query
题目描述 English VietnameseGiven a sequence of n numbers a _{1}1 , a _{2}2 , ..., a _{n}n and a numbe ...
- 2017多校Round10(hdu6171~hdu6181)
补题进度:5/11 1001(双向BFS) 题意: 给你一个类似移子游戏,给你初始状态和终止状态,问初始状态到终止状态至少要移多少步,如果步数>20就-1 分析: 很明显的BFS了,不过普通的B ...
- ubuntu12.04安装搜狗输入法记录
http://blog.sina.com.cn/s/blog_66fa66650101akip.html 看了http://www.cnblogs.com/A-Song/archive/2013/04 ...