NDK mk 文件分析

通过分析一个例子来了解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-jni
LOCAL_SRC_FILES := hello-jni.c

include $(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变量,并确定该怎么构建,以及怎样做准确,同时也指定生成一个共享库

第二部分:参考资料

mk overview

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值