zoukankan      html  css  js  c++  java
  • 如何在龙芯架构和国产化操作系统平台上运行javacv

    如何将javacv中的native库编译到龙芯平台

    由于我们在上一篇中已经讲到,java在龙芯平台和国产操作系统“双剑合璧基础上的运行问题已经解决了。但是呢,javacv依赖的ffmpeg和opencv等库都是c/c++库,这些库都需要我们自行编译,所以我们还要知道如何编译这些c/c++库。
    而好巧不巧的是,我们在上一章中也讲了如何编译龙芯mips架构的c/c++代码,所以我们直接跳过编译,直接讲如何打包ffmpeg和opencv就好了。

    如何将ffmpeg和opencv编译到龙芯mips平台

    由于ffmpeg和opencv都是c/c++库,而GCC4.6以后版本都可以通过下面这种配置来编译到龙芯平台

    ./configure 
    --arch=mips 
    --cpu=loongson3a
    

    ffmpeg和opencv都参照这种方式编译即可。

    注意:GCC4.6以后才默认支持龙芯3A架构,所以请GCC版本较低的自行升级到最新版本即可。

    按照这种方式,ffmpeg和opencv打包好了,要如何将他们放入javacv里面呢?
    我们为了简化流程,后面只用ffmpeg来讲。

    集成龙芯版FFmpeg到javacv

    目前龙芯已经提供好了版本,只是用的人还太少,没有编译进主分支,所以我们需要自己把它放进去即可。
    以1.5.4版本的javacv和4.3.1版本的ffmpeg为例:
    新建一个java项目,在org.bytedeco.ffmpeg.linux-mips64el路径下把编译好的ffmpeg文件(ffmpeg、ffprobe、xxx.so),然后打包成ffmpeg-4.3.1-1.5.4-linux-mips64el.jar包即可。
    打包后的jar包为: ffmpeg-4.3.1-1.5.4-linux-mips64el.jar

    将这个包作为依赖放入项目中。

    opencv和其他库同样依照本方法集成。

    构建龙芯版的javacpp到javacv

    javacpp构建参考:https://github.com/bytedeco/javacpp-presets/wiki/Build-Environments
    除此以外,还需要编译一个基于龙芯平台的javacpp-linux-mips64el。
    该步骤需要按照javacpp的教程进行构建,构建完得到的javacpp-linux-mips64el.jar,同样作为依赖包放入项目中。

    javacpp-linux-mips64el只需要构建一次,不需要重复构建。

    到这里为止,我们就可以在龙芯平台上运行javacv中有关ffmpeg的功能了。

    如果觉得博主写得还不错,欢迎”关注、点赞、收藏“一键三连。

    eguid原创文章,如未说明出处和作者名,禁止转载。 博主主更新博客为:eguid.blog.csdn.net。其他平台的小伙伴如需联系博主,请转到csdn,谢谢。 欢迎大家积极开心的加入流媒体讨论群:社区一群:770640961,社区二群:608423839,社区三群:556722677,社区四群:689672017
  • 相关阅读:
    anything vs everything
    cong
    invalid initialization of non-const reference of type与discards qualifiers
    gvew
    3.2存储器层次结构 -- 《深入理解计算机系统》☆☆☆☆☆
    2.2优化编译器的能力和局限性
    2.1.2优化程序性能
    2.1.1优化程序性能
    linux中获取堆栈空间大小的方法
    优美的英文诗歌Beautiful English Poetry
  • 原文地址:https://www.cnblogs.com/eguid/p/14962018.html
Copyright © 2011-2022 走看看