关于在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 输出动态库

 

转载于:https://www.cnblogs.com/John5/p/10319588.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值