我是Android NDK的新手。我知道在每个jni/文件夹中,都有Android.mk文件,似乎总是以:
LOCAL_PATH := $(call my-dir)它定义了LOCAL_PATH,但是如果将其转换为人类可读的启动,这条路径是什么?LOCAL_PATH是指向jni/文件夹还是项目根?
例如,我导入了一个使用NDK的Android项目,我检查了它的Android.mk文件,它有如下内容:
LOCAL_PATH := $(call my-dir)
...
MY_PLUGINS := XXX YYY ZZZ
MY_PATH := $(LOCAL_PATH)/other/something问题1,LOCAL_PATH := $(call my-dir)是什么意思,它指向的路径是什么?
问题2,我在哪里可以找到那些MY_PLUGINS,我的意思是XXX,YYY和ZZZ,至少我在导入的项目中看不到它。
问题3,在哪里可以找到MYPATH定义的something?我在项目中也没看到。
P.S.:(我试图在jni/other/something下找到它,但没有这样的文件)。顺便问一下,Android.mk中使用的脚本语言的名称是什么?
发布于 2013-11-05 13:56:32
这里最好的资源可能是NDK文档本身。它不是托管在网络上的(不幸的),但它是与NDK一起发布的。检查下载的NDK中的android-ndk-rX/documentation.html文件。
问题1:来自文档的Android.mk File部分:
LOCAL_PATH := $(打电话给my-dir) Android.mk文件必须从LOCAL_PATH变量的定义开始。它用于在开发树中定位源文件。在本例中,构建系统提供的宏函数'my-dir‘用于返回当前目录的路径(即包含Android.mk文件本身的目录)。
问题2和问题3:这些变量不是Android.mk文件中的“通常”变量。它们是用户定义的变量,如果没有更多关于您正在使用的项目的详细信息,就很难了解它。据我所知,MY_PATH确实应该指向jni/other/something。
关于您的P.S.,我不认为Android.mk文件是用任何特定的已知语言编写的:它是一种自定义语言,与Makefile有一些相似之处。
希望这能帮点忙!
发布于 2014-03-19 06:31:33
Q-1
Android.mk文件必须从LOCAL_PATH变量初始化开始。
LOCAL_PATH包含“Android.mk make的路径”,在大多数情况下它将出现在工作目录中。
$(调用my-dir)是调用宏函数"my-dir",在/build/core/finitions.mk中定义的,您可以检查宏的定义,它找到ndk-build脚本的目录才能开始工作。
Q-2
Android.mk允许用户定义局部变量,"MY_PLUGINS“是包含插件列表的局部变量,"XXX YYY”是他/她可能在Android.mk文件中使用的插件列表。
以下是定义局部变量的限制
建议使用MY_前缀来定义局部变量。
Q-3
同样,MY_PATH是一个局部变量,它包含指向“/ this / other”文件夹的绝对路径,现在这个路径可以包含"XXX YYY“插件或其他一些有用的内容。
希望这能有所帮助
https://stackoverflow.com/questions/19789142
复制相似问题