美文网首页
makefile--函数定义 函数调用

makefile--函数定义 函数调用

作者: qiuzy_666 | 来源:发表于2018-10-04 22:04 被阅读0次

函数定义与调用


1. makefile中支持函数的概念

  • make解释器提供了一系列的函数供makefile调用
  • 在makefile中支持自定义函数实现,并调用执行
  • 通过define关键字实现自定义函数
    示例1--函数定义
define func1
    @echo "my name is $(0)"
endef
define func2
    @echo "my name is $(0)"
    @echo "param1 => $(1)"
    @echo "param2 => $(2)"
endef

示例1--函数调用

test :
    $(call func1)
    $(call func2, value1)
9-1.PNG

2. 深入理解自定义函数

  • 自定义函数是一个多行变量,无法直接调用,需要使用call进行调用
  • 自定义函数是一种过程调用,没有任何的返回值
  • 自定义函数用于定义命令集合,并应用于规则中
    示例2--自定义函数的应用
define func1
    @echo "my name is $(0)"
endef

var1 := $(call func1)
var11 := $(func1)

test :
    @echo "var1 => $(var1)"
    @echo "var11 => $(var11)"
9-2.PNG

3. make解释器中的预定义函数

  • make的函数提供了处理文件名,变量和命令的函数
  • 可以在需要的地方调用函数来处理指定的参数
  • 函数在调用的地方被替换为处理结果

预定义函数的调用方法:

var := $(func_name arg1,arg2,...)

说明:
var表示返回值,func_name表示函数名,arg1,arg2表示函数实参

示例3--预定义函数调用

var := $(abspath ./)

test :
   @echo "var => $(var)"
9-3.PNG

自定义函数和预定义函数的本质区别:

  • makefile中不支持真正意义上的自定义函数
  • 自定义函数的本质是多行变量
  • 预定义的call函数在调用时将参数传递给多行变量
  • 自定义函数是call参数的实参,并在call中被执行
    示例4--call调用多行变量(call无法调用变量)
.PHONY : test

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

func2 := @echo "my name is $(0)"

test :
    $(call func1)
    $(call func2)
9-4.PNG

示例5--call调用多行变量

.PHONY : test

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

define func2 
    @echo "my name is $(0)"
endef

test :
    $(call func1)
    $(call func2)
9-5.PNG

示例6--自定义函数与预定义函数区别

.PHONY : test

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

define func2 
    @echo "my name is $(0)"
endef

var1 := $(call func1)
var2 := $(call func2)
var3 := $(abspath ./)
var4 := $(abspath test.app)

test :
    @echo "var1 => $(var1)"
    @echo "var2 => $(var2)"
    @echo "var3 => $(var3)"
    @echo "var4 => $(var4)"
9-6.PNG

小结

  • make解释器提供了一系列的函数供makefile调用
  • 自定义函数是一个多行变量,无法直接调用,只能借助于call进行间接调用
  • 自定义函数用于定义命令集合,并应用于规则中
  • 预定义的call函数在调用时将参数传递给多行变量
  • 自定义函数是call函数的实参,并在call中被执行

相关文章

  • makefile--函数定义 函数调用

    函数定义与调用 1. makefile中支持函数的概念 make解释器提供了一系列的函数供makefile调用 在...

  • JavaScript 函数

    函数函数定义与调用变量作用域全局变量方法高阶函数闭包箭头函数$generator$ 函数 函数定义与调用 定义函数...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 004-函数

    函数介绍 函数概念 函数的定义和调用函数的定义(函数可以重复调用,不能重复定义)语法格式:def 函数名(): ...

  • 7章 初始函数

    本章大纲 函数定义与调用 参数与返回值 内置函数 函数的定义与调用 函数的定义 函数的调用 参数与返回值 内置函数...

  • 菜鸟Python笔记-基础篇05:函数(一)

    一、函数定义和调用 <1>定义函数 定义函数的格式如下: demo: <2>调用函数 定义了函数之后,就相当于有了...

  • Python学习基础知识之 函数的介绍以及常见操作

    目录 一、函数定义和调用 1.1定义函数 1.2调用函数 1.3注意 二、函数参数 2.1定义带有参数的函数 2....

  • Python -函数

    定义函数 调用函数

  • 2018-09-29

    1.函数的基础: 函数的定义 定义格式:def 函数名(): 函数的调用 调用函数很简单的,通过 函数名() 即可...

  • Python第三课---函数和类

    函数 函数的定义 函数的调用 类 类的定义:

网友评论

      本文标题:makefile--函数定义 函数调用

      本文链接:https://www.haomeiwen.com/subject/fllfaftx.html