码迷,mamicode.com
首页 > 其他好文 > 详细

makefile学习之路——函数调用

时间:2018-03-31 17:25:55      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:makefile   call   函数   

一、深入自定义函数

        1、 自定义函数是一个多行变量,无法直接调用

        2、 自定义函数是一个过程调用,没有任何的返回值

        3、 自定义函数用于定义命令集合,并应用于规则中

.PHONY : test

define func1
	@echo "My name is $(0)"
endef

define func2
	@echo "My name is $(0)"
	@echo "Param 1 => $(1)"
	@echo "Param 2 => $(2)"
endef

var := $(call func1)
new := $(func1)

test :
	@echo "new => $(new)"
	@echo "var => $(var)"
	$(call func1)                  #@echo My name is func1
	$(call func2, Study, Makefile)

技术分享图片

        运行结果如图所示。

        通常,调用自定义的方法是在规则中,$(call funcname),这种方式调用。

        当我们用var的方式去调用函数时,不会成功的调用函数,原因就在于,define定义的函数,必须要在规则中通过call才能调用,否则,就只是当作一个变量。

        从new的使用来看,call的作用,就是将相应的位置换成实参。

二、 预定义函数

        预定义函数一般需要使用的时候再去查询,这里对预定义函数和自定义函数进行对比

       在makefile中不支持真正意义上的函数,因为自定义函数只是一个多行变量;预定义的call函数在调用时,将参数传递给多行变量;自定义函数是call函数的实参,并在call中被执行。








makefile学习之路——函数调用

标签:makefile   call   函数   

原文地址:http://blog.51cto.com/12876518/2093390

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!