NDK makefile 文件分析

来源:互联网 发布:淘宝联盟的佣金在哪里 编辑:程序博客网 时间:2024/04/25 20:46

通过分析一个例子来了解NDK makefile文件的生成。例子"hello JNI" ,由NDK提供的例子

A. 目录结构

    未命名

     jni目录:包含本地源文件,eg:'jni/hello-jni.c',该源文件实现了一个简单的共享库,实现了一个简单的本地方法,返回字符串给java 虚拟机

     src目录:包含了工程的java源文件

B. mk源文件

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := hello-jniLOCAL_SRC_FILES := hello-jni.cinclude $(BUILD_SHARED_LIBRARY)

      第一行:

            LOCAL_PATH := $(call my-dir)

        必须的,调用系统方法,返回当前程序的目录

      第二行:

           include $(CLEAR_VARS)

      必须得,该CLEAR_VARS变量由编译系统提供,指向一些特殊的GNU Makefile文件来清除一些LOCAL_XXX变量除了

LOCAL_PATH。因为所有的编译控制文件被一个单一的GUN Make执行时所有的变量时全局的。

      第三行:

          LOCAL_MODULE := hello-jni

 用来指定你生成的动态库的名字,系统会自动为你添加前缀和后缀,生成后的so为 libhello-jni.so,系统自动添加了前缀“lib”和后缀“.so”

      第四行:

         LOCAL_SRC_FILES := hello-jni.c  

       其包含一系列的C or C++源文件,不需要添加.h文件,系统会自动为你添加

      第五行:

          include $(BUILD_SHARED_LIBRARY)

 必须的,其由系统提供,指向一个GUN Makefile脚本,用来负责收集你定义的所有LOCAL_XXX变量,并确定该怎么构建,以及怎样做准确,同时也指定生成一个共享库


原创粉丝点击