当前位置: 首页 > article >正文

NDK编译c/c++文件成so库

目录

背景

Android NDK下载及配置

工程准备

创建Android.mk文件

创建Application.mk文件

编译项目

总结


背景

做算法开发,有时需要将算法编程成so库给其他人调用,很多时候都是在Android平台上使用,这样就会使用到Android NDK进行编译,编译成so文件,有多种配置方式,比如mk或者cmake等,这里主要介绍mk文件方式。

Android NDK下载及配置

Android NDK下载路径

https://developer.android.com/ndk/downloads?hl=zh-cn

选择自己需要的版本及平台

下载之后,解压到某个路径下即可,然后进行环境配置,将ndk-build的路径配置到环境变量里即可,然后在cmd里运行一下ndk-build,如果如下图所示,即可证明配置成功。

工程准备

 假如你的工程是如下图所示

默认情况下,inc里放置你的头文件,src下放置你的cpp文件,文件里可以有多个文件,然后新建一个jni文件,jni文件可以和src,inc并列,也可以如图所示把src和inc放到jni里,build文件不用管,这个是编译之后生成的。

创建Android.mk文件

如果所示,在jni里创建Android.mk文件,mk文件里的具体格式,可以搜索相关资料,这里只是一个简单的例子,主要包括设置模块名称,设置源文件,源文件有多个的话,可以写多个,如果每行写一个的话,可以用“\”隔开即可。然后设置头文件目录,这里只设置一个,也是支持设置多个的,写法和源文件类似,详细写法可以搜索相关资料,另外就是使用动态库等。

创建Application.mk文件

如图所示,在jni下创建Application.mk文件,其中的APP_ABI这里写的是32位的,如果是64位的系统,需要写arm64-v8a。

编译项目

在cmd的窗口里,切换到项目路径下,由于配置好了ndk-build的环境变量,可以直接输入ndk-build,即可进行编译,然后窗口里会显示编译信息及编译是否成功等。

编译成功的话,会生成一个build文件夹,里面会有一些和编译相关的东西,另外会生成一个libs文件,编译的so文件在这个路径下,如果是32位系统的,会有一个armeabi-v7a文件夹,如果是64位系统的话,会有一个arm64-v8a文件夹,so文件在该路径下。

总结

好了,这里简单的介绍了一下Android ndk编译so文件的方法,在Windows平台上和Linux 都是类似的,这里没写复杂的工程,有时工程很大,需要写的mk文件或者脚本会比较多,这里只是最简单的,可以基于此再进行扩展。


http://www.kler.cn/a/286556.html

相关文章:

  • (2)SpringBoot自动装配原理简介
  • JVM--类加载器
  • 数据分析系列--③RapidMiner算子说明及数据预处理
  • 【数据结构】动态内存管理函数
  • 动态规划DP 数字三角型模型 最低通行费用(题目详解+C++代码完整实现)
  • 星火大模型接入及文本生成HTTP流式、非流式接口(JAVA)
  • CentOS 7 将YUM源更换为国内源的保姆级教程
  • OpenCV入门
  • OpenCPN Compiling on Windows
  • 【学习笔记】卫星通信NTN 3GPP标准化进展分析(三)- 3GPP Release17 内容
  • SYN6288语音合成模块的简单应用
  • [M二叉树] lc235. 二叉搜索树的最近公共祖先(dfs+二叉搜索树)
  • 如何使用mcu 内置 flash 实现fatfs
  • 原来这就是 布隆过滤器
  • 【JS】async函数返回promise
  • VR虚拟驾驶未来发展_vr自动驾驶汽车所带来的改变
  • 一次bad udp checksum故障
  • 深度解析CancellationToken在HttpClient请求中的应用
  • 【Python】数据容器
  • 从文本坐标数据转换为矢量(点线面)
  • 微服务间调用
  • sqlserver数据库常见操作
  • 自闭症孩子的康复治疗方法
  • javaEE
  • ISIS路由渗透
  • MyBatis 源码解析:SqlSessionFactoryBuilder 解析与实现