码迷,mamicode.com
首页 > 移动开发 > 详细

Android JNI之编译

时间:2017-09-04 22:30:37      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:.so文件   ndk   call   引入   efi   flags   red   拼接   filename   

JNI代码都写好了,在编译之前我们有非常重要的一部,就是写mk文件,mk文件就相当于gcc编译时的Makefile文件,它是用来告诉编译器如何去编译的。

这里只对自己理解和常用的知识点做记录,想要看关于android.mk的全部解释请移步android.mk

  1. 对执行顺序的猜想,mk文件的执行顺序是从上往下顺序执行的
  2. 基本语法。
    $() 引用方法或变量
    := 赋值符号
    += 拼接赋值
    include 引入(调用)某个代码段,例如include $(BUILD_XXXXX)就相当于把BUILD_XXXXX这个方法的实现拿过来,编译器读到这一行时即执行该方法
  3. mk文件基本都是以LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)开头,以include $(BUILD_XXXXX)结尾
  4. 常用预留变量解析(基本都以LOCAL_开头)
    LOCAL_PATH:指定当前文件的位置,基本都是赋值为$(call my-dir)
    LOCAL_SRC_FILES:指定需编译的源文件,多文件以空格分隔或使用+=拼接赋值
    LOCAL_MODULE:指定module名,要求必须唯一且不能带空格
    LOCAL_MODULE_FILENAME:指定生成的module的文件名,缺省则按照lib<LOCAL_MODULE>生成.a或.so文件
    LOCAL_STATIC_LIBRARIES:引用的静态库(.a)
    LOCAL_SHARED_LIBRARIES:引用的动态库(.so)
    LOCAL_LDFLAGS:指定链接标志
  5. 常用系统方法
    CLEAR_VARS:清除所有预设的值
    BUILD_SHARED_LIBRARY:编译出动态库(.so)
    BUILD_STATIC_LIBRARY:编译出静态库(.a)
  6. 编译
    cd到.mk文件所在目录,执行ndk包中的ndk-build命令

Android JNI之编译

标签:.so文件   ndk   call   引入   efi   flags   red   拼接   filename   

原文地址:http://www.cnblogs.com/duanzi6/p/7475948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!