关于在centos7 64为引用android so引发的问题修复
背景: 公司有解码的app,解码库位c++编写so动态库. 之前做过一版在调用html5摄像头,然后提取图像进行解码,后面因为图像质量不佳放弃.
最近 因为小程序api有更新 可以获取到相对清晰的图像,所以有重启了.
前端使用微信的小程序的直播流 后端截取直播流的图像帧,解析帧的数据,进行解码.
但是遇到问题,在springboot调用so动态库 踩了不少坑.
1.so库不兼容,旧版html5已是两年前做的demo版,so库的来源不清楚了。现在没办法 直接把andorid app中的so 放到程序lib目录下 发现报找不到so
2.so库路径不对 linux so动态库 要放置在/usr/lib 或/usr/lib64/目录下
3.springboot程序 包名问题,调用so库的类 的包名 需与so库 命名规则一致 参照android调用jni
4.由于库不兼容 需要重新编译 使用android 编译的库无法使用 需在centos7下编译so库
a.下载android ndk 并设置环境变量 在命令行 执行ndk-build测试
b.将c++文件编译成so动态库
gcc -I /home/ndk/android-ndk/sysroot/usr/include xx.c xx.cpp xx.cpp xx.cpp -fPIC -shared -o libxx.so
-I 需引入ndk下的声明文件 例如jni.h 因为c或cpp中有引用android ndk
xx.c xx.cpp xx.cpp xx.cpp 编译多 直接引入
-fPIC -shared 需要添加
-o 输出动态库
关于在centos7 64为引用android so引发的问题修复的更多相关文章
- Ubuntu 14.04 AMD 64位 下 Android Studio 的安装
Ubuntu 14.04 AMD 64位 下 Android Studio 的安装 作者:yoyoyosiyu 邮箱:yoyoyosiyu@163.com 时间:2015年8月25日 Android ...
- CentOS7 64位 安装MySQL5.7
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- 超详细的CentOS7 64位下MySQL5.7安装与配置(YUM)【转发+新创】
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- 下载Centos7 64位镜像
下载Centos7 64位镜像 1.打开Centos官网 打开Centos官方网站地址:https://www.centos.org/,点击Get CentOS Now 2.点击Minimal ISO ...
- ASP .Net Core系统部署到 CentOS7 64 具体方案
.Net Core 部署到 CentOS7 64 位系统中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是 ...
- CentOS7 64位下MySQL5.7安装与配置(YUM)转
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- CentOS7 64位下MySQL5.7安装与配置
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装
一.mac上安装docker 1.下载 通过这个链接下载:https://download.docker.com/mac/stable/Docker.dmg 2.安装 将 Moby 的鲸鱼图标拖拽到 ...
- 在项目中引用android.support.v7
在Android开发中,新建的项目可能因为缺少对sopport工程的引用而报错,可以这样解决. 1.项目右键 --> import --> Android --> Existing ...
随机推荐
- JAVA进阶16
间歇性混吃等死,持续性踌躇满志系列-------------第16天 1.桌球游戏小项目 ①窗口加载 import javax.swing.*; public class BallGame exten ...
- 关于URL隐藏index.php方法
在phpstudy上修改了php版本5.6以上后,tp5框架原URL重写模式发生变化.需要在public目录下的.htaccess作出如图修改,原理未知.
- MySQL2.字符集乱码
MySQL2.字符集 此节记录下MySQL出现乱码的原因.还是参考小册子~ 字符集简介 计算机中只能存储二进制数据,建立字符与二进制数据的映射关系来存储字符. 从两方面考虑: 1.界定清楚字符范围,即 ...
- AXI_DMA IP学习
参考:PG201 AXI DMA v7.1 AXI IP核 功能:一旦处理器配置好传输方式之后,DMA可以自己完成内存数据的搬进或者搬出,而不需要处理器的介入.如果使用方法得当,DMA可以显著 ...
- CRMEB系统开发文档
CRMEB系统开发文档 https://gitee.com/ZhongBangKeJi/CRMEB hibernate:学习文档https://blog.csdn.net/u013087513/art ...
- 大前端服务器渲染 发布和部署 Vue + vue(SSR)
https://blog.csdn.net/sinat_15951543/article/details/80109521 就是到服务器dist 下面 npm run start & 然 ...
- java - day003 - 循环嵌套, 循环命名, while, 数组
1.循环嵌套 break 中断循环或switch(跳出循环).中断后继续往下执行 continue (跳到循环的下一轮继续执行) return (结束方法) 2.循环命名 内层循环控制外层循环.需要给 ...
- LoadRunner脚本准备
脚本录制1.启动LoadRunner2.打开VuGen在LoadRunner Launcher窗格中,单击创建/编辑脚本3.创建一个空白Web脚本在“新建虚拟用户”对话框里选择新建脚本的协议一般选择W ...
- C语言博客作业2--循环结构
1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 对本章学习感觉相对前面的难度有较大提升,而且刚开始对嵌套循环比较陌生,像龟兔赛跑和输出菱形都是用了较长时间才完成,所以我认 ...
- 使用Anaconda操作numpy库和matplotlib图形库
慢慢来~~~ import numpy as np import matplotlib.pyplot as plt # 生成数据 x = np.arange(0, 6, 0.1) # 以0.1为单位, ...