Android JNI之编译
2024-10-09 11:34:31
JNI代码都写好了,在编译之前我们有非常重要的一部,就是写mk文件,mk文件就相当于gcc编译时的Makefile文件,它是用来告诉编译器如何去编译的。
这里只对自己理解和常用的知识点做记录,想要看关于android.mk的全部解释请移步android.mk。
- 对执行顺序的猜想,mk文件的执行顺序是从上往下顺序执行的
- 基本语法。
$() 引用方法或变量
:= 赋值符号
+= 拼接赋值
include 引入(调用)某个代码段,例如include $(BUILD_XXXXX)就相当于把BUILD_XXXXX这个方法的实现拿过来,编译器读到这一行时即执行该方法 - mk文件基本都是以LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)开头,以include $(BUILD_XXXXX)结尾
- 常用预留变量解析(基本都以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:指定链接标志 - 常用系统方法
CLEAR_VARS:清除所有预设的值
BUILD_SHARED_LIBRARY:编译出动态库(.so)
BUILD_STATIC_LIBRARY:编译出静态库(.a) - 编译
cd到.mk文件所在目录,执行ndk包中的ndk-build命令
最新文章
- MFC下打开选择文件夹并获取文件夹的绝对路径
- MySQL监控利器-Innotop
- HBase最佳实践-列族设计优化
- phoenix 开发API系列 目录
- Android 多点触控与简单手势(一)
- 在Linux CentOS上编译CoreCLR
- abap alv multiple header using write
- jQuery DOM 元素方法 - index() 方法
- ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统
- C++读取csv表格文件到vector
- InnoDB存储引擎的总览
- Thread.interrupt()
- STL.vector.iterator的序号
- B. ZgukistringZ
- Codeforces805 C. Find Amir 2017-05-05 08:41 140人阅读 评论(0) 收藏
- node.js学习之post文件上传 (multer中间件)
- php 的session机制 和ecshop session机制
- CF 833 B. The Bakery
- Codeforces 372 B. Counting Rectangles is Fun
- SMT Surface Mount Technology footprint references