拷贝头文件 | LOCAL_PATH := $(my-dir) include $(CLEAR_VARS) LOCAL_COPY_HEADERS_TO := common/inc LOCAL_COPY_HEADERS := ../inc/armasm.h LOCAL_COPY_HEADERS += ../inc/comdef.h include build/core/copy_headers.mk |
编译库 | LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE:= helloworld LOCAL_SRC_FILES := helloworld.c include $(BUILD_SHARED_LIBRARY) / $(BUILD_STATIC_LIBRARY) |
编译二进制应用程序 | LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= main.c LOCAL_MODULE:= test_exe LOCAL_C_INCLUDES := LOCAL_STATIC_LIBRARIES := LOCAL_SHARED_LIBRARIES := include $(BUILD_EXECUTABLE) |
编译APK | LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := Test2 LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) # additionally, call tests makefiles include $(call all-makefiles-under,$(LOCAL_PATH)) |
编译子目录 | all-subdir-makefiles 返回一个位于当前'my-dir'路径的子目录列表。例如,看下面的目录层次: sources/foo/Android.mk sources/foo/lib1/Android.mk sources/foo/lib2/Android.mk 如果sources/foo/Android.mk包含一行: include $(call all-subdir-makefiles) 那么它就会自动包含sources/foo/lib1/Android.mk 和sources/foo/lib2/Android.mk |
C++改文件后缀名 | LOCAL_CPP_EXTENSION 这是一个可选变量,用来指定C++代码文件的扩展名,默认是'.cpp',但是你可以改变它,比如:LOCAL_CPP_EXTENSION := .cxx |
LOCAL_C_INCLUDES | LOCAL_C_INCLUDES := $(LOCAL_PATH)/../foo 需要在任何包含LOCAL_CFLAGS / LOCAL_CPPFLAGS标志之前。 |
LOCAL_CFLAGS | LOCAL_CFLAGS 可选的编译器选项,在编译C代码文件的时候使用。 这可能是有用的,指定一个附加的包含路径(相对于NDK的顶层目录),宏定义,或者编译选项。 |
LOCAL_CPPFLAGS | LOCAL_CPPFLAGS 与LOCAL_CFLAGS相同,但是对C 和 C++ source files都适用。 |
LOCAL_STATIC_LIBRARIES | LOCAL_STATIC_LIBRARIES 应该链接到这个模块的静态库列表(使用BUILD_STATIC_LIBRARY生成),这仅仅对共享库模块才有意义。 |
LOCAL_SHARED_LIBRARIES | LOCAL_SHARED_LIBRARIES 这个模块在运行时要依赖的共享库模块列表,在链接时需要,在生成文件时嵌入的相应的信息。 注意:这不会附加列出的模块到编译图,也就是,你仍然需要在Application.mk中把它们添加到程序要求的模块中。 |
LOCAL_LDLIBS | LOCAL_LDLIBS 编译你的模块要使用的附加的链接器选项。这对于使用”-l”前缀传递指定库的名字是有用的。例如,下面将告诉链接器生成的模块要在加载时刻链接到/system/lib/libz.so LOCAL_LDLIBS := -lz |
LOCAL_MODULE_PATH | LOCAL_MODULE_PATH和LOCAL_UNSTRIPPED_PATH来指定。不同的文件系统路径用以下的宏进行选择 TARGET_ROOT_OUT:表示根文件系统。 TARGET_OUT:表示system文件系统。 TARGET_OUT_DATA:表示data文件系统。 用法如: LOCAL_MODULE_PATH:=$(TARGET_ROOT_OUT) |
编好的库编进Android | include $(CLEAR_VARS) LOCAL_PREBUILT_LIBS := libaacenc.a include $(BUILD_MULTI_PREBUILT) |
编好的二进制编进Android | LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := hellovprc.elf LOCAL_MODULE := hellovprc.elf LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_MODULE_TAGS := debug include $(BUILD_PREBUILT) |
拷贝文件 | 更容易的方式是: $(call add-prebuilt-files, ETC, pv_player.cfg) 它会将pv_player.cfg copy to system/etc下,还可以设定类型: ETC,APPS,EXECUTABLES,SHARED_LIBRARIES,STATIC_LIBRARIES add-prebuilt-files的定义是在build/core/definitions.mk下 |
Android.mk 编写
最新推荐文章于 2021-05-26 17:25:47 发布