JNI中Android.mk随记

来源:互联网 发布:linux 搜索文件内容 编辑:程序博客网 时间:2024/05/22 06:47

1、LOCAL_PATH:=$(call my-dir)   设置当前的编译目录(Android.mk所在的目录)

2、include $(CLEAR_VARS)  清除LOCAL_XXX变量(不包括LOCAL_PATH除外)

3、LOCAL_MODULE:=module_name  指定当前编译模块的名称

4、LOCAL_SRC_FILES := helloComputeNDK.cpp 编译模块需要的源文件

5、include $(BUILD_SHARED_LIBRARY) 指定编译出的库类型,BUILD_SHARED_LIBRARY指定编译成动态库,BUILD_STATIC_LIBRARY指定生成静态库,BUILD_EXECUTEABLE指定生成可执行文件.

6、include $(call all-makefiles-under,指定目录)  包含指定的目录下的Android.mk,如指定当前目录:include $(call all-makefiles-under,$(LOCAL_PATH)),

7、include $(call all-subdir-makefiles)  包含所有当前目录中子目录的Android.mk(当前目不能有编译模块,因为在编译完当前目录模块后,不会再到子目录去),要把这个包含语句放到末尾,因为当包含别的Android.mk后再去调用call-my-dir的会出错。

8、LOCAL_C_INCLUDES+= $(ANDROID_SOURCE)/frameworks/base/include 设置头文件的搜索路径(不包括子目录)。

9、LOCAL_LDLIBS:=-Llibspath -lxxx -lyyy   设置需要链接的动态库, #libspath是库所在路径,xxx和yyy是库

10、LOCAL_SHARED_LIBRARIES:=module_name  指定链接Android.mk中定义的动态库模块(若该模块为被编译,则先编译该模块)

11、LOCAL_STATIC_LIBRARIES:=module_name   指定链接Android.mk中定义的静态库模块(若该模块为被编译,则先编译该模块)

12、LOCAL_EXPORT_C_INCLUDES:=module_include 用来导出当前模块的头文件所在路径(若被其他模块以来,热不需要指出头文件路径)

13、LOCAL_EXPORT_LDLIBS:= -lxxx -lyyy  用于导出模块的依赖关系,当用静态库生成动态库时,可以用此方法设置静态库的依赖环境,一般用法是:LOCAL_EXPORT_LDLIBS:=$(LOCAL_LDLIBS) #上面提到用LOCAL_LDLIBS设置链接路径的好处就在这里,可以直接导出库和库所在的路径.

14、include $(PREBUILT_SHARED_LIBRARY)  预编译,目的是为了在Android.mk中生成一个模块名字,主要用来包含第三方库,为第三方库在Android.mk中创建模块名字,被其他库使用.使用这种编译时,LOCAL_SRC_FILES中指向一个动态库,并且最后被打包到安装包里的库会是这个动态库.

15、include $(PREBUILT_STATIC_LIBRARY)(同上)

0 0
原创粉丝点击