对 makefile 中 eval 函数的学习体会

简介:

上例子

复制代码
define func
foo:
    @echo "at foo"
endef

all: foo
    @echo "final"

$(eval $(call func, foo,abc.c))
复制代码

先不整那些函数参数传递之类的幺蛾子,做一个个简单的例子,

运行 make

结果是:

at foo

final

然后再变化下:

复制代码
define func
$1:
    @echo "at foo"
endef

all: foo
    @echo "final"

$(eval $(call func, foo,abc.c))
复制代码

这次,传递 foo 作为 $1,得到结果相同。

基本上可以看到,eval 函数是具备一定的运行时刻改变makefile 能力。

结束




本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/10/04/2711494.html,如需转载请自行联系原作者

目录
相关文章
|
存储 Unix Linux
在Linux中,inode是什么?
在Linux中,inode是什么?
|
机器学习/深度学习 人工智能 C语言
10个C语言实现源代码
10个重要的算法C语言实现源代码
|
Android开发
Android 新建一个lunch项(全志方案)
Android 新建一个lunch项(全志方案)
312 0
|
Java 应用服务中间件 Apache
Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目
Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目
232 1
|
开发工具 Android开发
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
1102 0
|
Linux 编译器
一起来认识Linux中的 BUILD_BUG_ON 宏
一起来认识Linux中的 BUILD_BUG_ON 宏
|
存储 编译器 C++
2023-4-27-深入理解C++指针类型间强制转换
2023-4-27-深入理解C++指针类型间强制转换
518 0
rock rv1126buildroot增加ntp过程
rock rv1126buildroot增加ntp过程
392 0
Application provided invalid, non monotonically increasing dts to muxer in stream
Application provided invalid, non monotonically increasing dts to muxer in stream
804 0
Application provided invalid, non monotonically increasing dts to muxer in stream