Android.mk 文件语法规范
2010-07-20 13:26:00 来源:WEB开发网(7) LOCAL_CXXFLAGS: Same as LOCAL_CFLAGS for C++ source files
(8) LOCAL_CPPFLAGS: 与LOCAL_CFLAGS相同,但是对C 和C++ source files都适用。
(9) LOCAL_STATIC_LIBRARIES: 应该链接到这个模块的静态库列表(使用BUILD_STATIC_LIBRARY生成),这仅仅对共享库模块才有意义。
(10) LOCAL_SHARED_LIBRARIES: 这个模块在运行时要依赖的共享库模块列表,在链接时需要,在生成文件时嵌入的相应的信息。注意:这不会附加列出的模块到编译图,也就是,你仍然需要在 Application.mk中把它们添加到程序要求的模块中。
(11) LOCAL_LDLIBS: 编译你的模块要使用的附加的链接器选项。这对于使用”-l”前缀传递指定库的名字是有用的。例如,下面将告诉链接器生成的模块要在加载时刻链接到 /system/lib/libz.so
LOCAL_LDLIBS := -lz
看docs/STABLE-APIS.TXT获取你使用 NDK发行版能链接到的开放的系统库列表。
(13) LOCAL_ALLOW_UNDEFINED_SYMBOLS: 默认情况下,在试图编译一个共享库时,任何未定义的引用将导致一个“未定义的符号”错误。这对于在你的源代码文件中捕捉错误会有很大的帮助。然而,如果你因为某些原因,需要不启动这项检查,把这个变量设为‘true’。注意相应的共享库可能在运行时加载失败。(这个一般尽量不要去设为true)
(14) LOCAL_ARM_MODE: 默认情况下,arm目标二进制会以thumb的形式生成(16位),你可以通过设置这个变量为arm如果你希望你的module是以32位指令的形式。
'arm' (32-bit instructions) mode. E.g.:
(15) LOCAL_ARM_MODE := arm 注意你同样可以在编译的时候告诉系统编译特定的类型,比如
(16) LOCAL_SRC_FILES := foo.c bar.c.arm 这样就告诉系统总是将bar.c以arm的模式编译,下面是GNU
Make‘功能’宏,必须通过使用'$(call
(17) my-dir: 返回当前Android.mk所在的目录路径,相对于NDK编译系统的顶层。这是有用的,在Android.mk文件的开头如此定义:
LOCAL_PATH := $(call my-dir)
(18) all-subdir-makefiles: 返回一个位于当前'my-dir'路径的子目录列表。例如,看下面的目录层次:
sources/foo/Android.mk
sources/foo/lib1/Android.mk