Android.mk 中“LOCAL_PATH := $(call my-dir)”的“调用”是什么?

xml*_*lmx 2 shell android makefile build android-ndk

下面是 Android.mk 的第一行:

LOCAL_PATH := $(call my-dir)
Run Code Online (Sandbox Code Playgroud)

什么是call?一个shell命令?

mst*_*sjo 5

call是调用声明函数的 make 函数。即使某些部分看起来相似,make语法也不等于普通shell语法,因此$()不是子shell调用,而是变量评估或make函数的调用,其中call调用用户定义函数的函数在哪里。有关此事的更多详细信息,请参见例如https://www.gnu.org/software/make/manual/html_node/Call-Function.html

$()(或``)的 make 等价物是$(shell ...),请参阅https://www.gnu.org/software/make/manual/html_node/Shell-Function.html以了解有关该的详细信息。