参考自:https://developer.android.google.cn/ndk/guides/android_mk
LOCAL_PATH
此变量用于指定当前文件的路径。必须在 Android.mk
文件的开头定义它。 以下示例向您展示如何操作:
LOCAL_PATH := $(call my-dir)
CLEAR_VARS
指向的脚本不会清除此变量。因此,即使您的 Android.mk
文件描述了多个模块,您也只需定义它一次。
LOCAL_MODULE
此变量用于存储模块的名称。它在所有模块名称之间必须唯一,并且不得包含任何空格。 必须在包含任何脚本(用于 CLEAR_VARS
的脚本除外)之前定义它。 无需添加 lib
前缀或者 .so
或 .a
文件扩展名;构建系统会自动进行这些修改。 在整个 Android.mk
和 Application.mk
文件中,请通过未修改的名称引用模块。 例如,以下行会导致生成名为 libfoo.so
的共享库模块:
LOCAL_MODULE := "foo"
如果希望生成的模块使用 lib
以外的名称和 LOCAL_MODULE
以外的值,可以使用 LOCAL_MODULE_FILENAME
变量为生成的模块指定自己选择的名称。
LOCAL_LDLIBS
此变量包含在构建共享库或可执行文件时要使用的其他链接器标志列表。 它可让您使用 -l
前缀传递特定系统库的名称。 例如,以下示例指示链接器生成在加载时链接到 /system/lib/libz.so
的模块:
LOCAL_LDLIBS := -lz
如需了解此 NDK 版本中可以链接的已公开系统库列表,请参阅 Android NDK 原生 API。
注: 如果为静态库定义此变量,构建系统会忽略它,并且 ndk-build
会显示一则警告。
LOCAL_LDFLAGS
构建共享库或可执行文件时供构建系统使用的其他链接器标志列表。 例如,以下示例在 ARM/X86 GCC 4.6+ 上使用 ld.bfd
链接器,该系统上的默认链接器是 ld.gold
LOCAL_LDFLAGS += -fuse-ld=bfd
注:如果为静态库定义此变量,构建系统会忽略它,并且 ndk-build 会显示一则警告。