zoukankan      html  css  js  c++  java
  • 关于在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 输出动态库

  • 相关阅读:
    tinymce原装插件源码分析(二)-link
    tinymce原装插件源码分析(一)-hr
    pyinstall 常见错误
    matlab Time-domain analysis 渐进式或者实时获取仿真值
    初识python和pycharm
    自定义指令详解
    Vue核心知识一览
    多维数组 转化为 一维数组
    js面试之数组的几个不low操作
    js如何操作或是更改sass里的变量
  • 原文地址:https://www.cnblogs.com/John5/p/10319588.html
Copyright © 2011-2022 走看看