opencv和ncnn编译冲突,这个项目的opencv能兼容ncnn,解决了这个冲突:

这个有ncnn opencv yolov5融合的例子:

https://github.com/cmdbug/YOLOv5_NCNN

自己移植opencv时,运行报找不到的错误,解决方法:

dlopen failed: library “libopencv_java4.so“ not found 解决_jacke121的专栏-CSDN博客

缺点:不知道yolov5是哪个版本

ncnn支持yolov5 v6

GitHub - ttjjmm/yolov5_deploy: ncnn deployment for yolov5-v6.0

缺点:不是jni的

ncnn win10 gpu:

pc_win10_x64安装ncnn,并使用vulkan_kai1001的专栏-CSDN博客_ncnn vulkan

opencv4版本,本机 NDKTest-master.zip

GitHub - zyongLiu/NDKTest: android JNI Test,use OpenCV default

ncnn opencv3 enet融合例子:

https://github.com/watersink/enet-as-linux

java_opencv4.so方式,还有.a方式调用,

迁移到自己的项目不成功

OpenCVDemo/app/src/main/libs/arm64-v8a at main · GenialSir/OpenCVDemo · GitHub

这个项目548m,sdk的方式提供

GitHub - sohyeong-dev/OpenCV-JNI-Example: OpenCV JNI Example

项目中有ncnn,加opencv编译报错了

NDK工程使用ncnn vulkan包提示需要frtti、fexceptions

这两天弄一个工程,是在安卓端部署ncnn with vulkan的项目

一般来说都会用到 try catch 或者 有些库需要用到typeid

一般的方法是在build.gradle里面加上

       externalNativeBuild {cmake {cppFlags '-std=c++11 -frtti -fexceptions'abiFilters "armeabi-v7a", "arm64-v8a"}}

这个网上很多我就不具体说了,但是我发现我的工程即使加了这个也还是用不了,一开始以为是自己的设置啥的有问题,后来发现只要cmake里加了ncnn就会出这个问题,因此我就认真的读了ncnn里的cmake文件一般路径为:

ncnn-xxxxxx-android-vulkan\arm64-v8a\lib\cmake\ncnn\ncnn.cmake
于是在大概57行的位置我发现了这个:

set_target_properties(ncnn PROPERTIESINTERFACE_COMPILE_OPTIONS "-fno-rtti;-fno-exceptions"INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/ncnn"INTERFACE_LINK_LIBRARIES "-fopenmp;-static-openmp;Threads::Threads;Vulkan::Vulkan;\$<LINK_ONLY:glslang>;\$<LINK_ONLY:SPIRV>;android;jnigraphics;log"INTERFACE_POSITION_INDEPENDENT_CODE "ON"
)

好的罪魁祸首就是他了,只要把-fno-rtti;-fno-exceptions 改成 -frtti;-fexceptions就可以了。

不过我得声明一下我也是个小白哈,具体这么改了之后对ncnn的运行性能有什么影响我没有测,如果有大佬知道更好的解决办法希望能告诉我一下,我实在是没有别的办法了

原文链接:https://blog.csdn.net/fiendwbc/article/details/118976134

这个改完之后,ncnn报错了:

CMakeFiles/yolov5ncnn.dir/yolov5ncnn_jni.cpp.o:yolov5ncnn_jni.cpp:typeinfo for YoloV5Focus: error: undefined reference to 'typeinfo for ncnn::Layer'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

无效方法:

六、修改app/build.gradle下, defaultConfig里面加入下面的代码

externalNativeBuild {
    cmake {
        arguments "-DANDROID_TOOLCHAIN=clang"
        cFlags "-fopenmp -O2 -fvisibility=hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math "
        cppFlags "-fopenmp -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math "
        arguments "-DANDROID_STL=c++_shared", "-DANDROID_CPP_FEATURES=rtti exceptions"
        cppFlags ""
        cppFlags "-std=c++14"
        cppFlags "-frtti"
        cppFlags "-fexceptions"
    }
}

opencv jni Android 实例笔记相关推荐

  1. Android开发笔记(序)写在前面的目录

    知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入 ...

  2. Android开发笔记(序)

    本开发笔记,借鉴与其他开发者整理的文章范例与心得体会.在这里作为开发过程中的一个总结与笔记式记录. 如有侵犯作者权益,请及时联系告知删除.俗话说:集百家成一言,去粕成金. ************** ...

  3. Android开发笔记(序)写在前面的目录大全

    转自  湖前琴亭 的博客https://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面 ...

  4. Andriod开发之二十:Android开发笔记(序)写在前面的目录

    https://blog.csdn.net/aqi00/article/details/50038385 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教 ...

  5. Android studio 下 JNI 开发实例

    在AS中进行 NDK 开发之前,我们先来简单的介绍几个大家都容易搞懵的概念: 到底什么是JNI,什么是NDK? 何为"交叉编译"? 先看什么是 JNI?JNI 的全称就是 Java ...

  6. Android实例剖析笔记(四)

    摘要:分析NoteEditor这个类和以及Content Provider机制 NoteEditor深入分析 首先来弄清楚"日志编辑"的状态转换,通过上篇文章的方法来做下面这样一个 ...

  7. Android JNI简单实例(android 调用C/C++代码)

    转载自 xiechengfa 最终编辑 xiechengfa Android JNI简单实例关键字: android.jni Android的jni实例 android 的应用程序(Dalvik VM ...

  8. Android开发笔记(六十九)JNI实战

    NDK NDK的用途 NDK全称为Native Development Kit,意即原生的开发工具,NDK允许开发者在APP中通过C/C++代码执行部分程序.它是Android提供的方便开发者通过JN ...

  9. opencv的android.mk,android-opencv 版本下JNI Android.mk文件的书写

    不能利用 include $(all-subdir-makefiles) 会报重复引用的错误. AndroidNDK:Tryingto define local module ...opencv. 故 ...

最新文章

  1. LeetCode 406. 根据身高重建队列
  2. 解锁三星bl锁有几种方法_三星S6解锁教程_三星GALAXY S6怎么解锁Bootloader的方法
  3. Web前端基础——HTML
  4. DNN出错:The compiler failed with error code 1.
  5. 验证java 递增不是原子操作
  6. 当你在应用机器学习时你应该想什么
  7. GCD HDU - 1695
  8. 宝塔 windows 2012 配置 ftp 允许 fileZilla 连接
  9. C++_类和对象_C++多态_多态案例1-计算器类_抽象父类---C++语言工作笔记071
  10. java中equals以及==的用法(简单介绍)
  11. QT 中QComboBox控件鼠标事件过滤
  12. Android OpenCV(六十二):伪彩色增强
  13. 用css 添加手状样式,鼠标移上去变小手
  14. 【蓝桥杯每日一练:蹩脚两轮车】
  15. 2020.2.4记账
  16. 微信小程序的表格table
  17. 斯泰因梅茨-电路向量法的创始人
  18. adonis.js mysql_专注于易用性与速度的Nodejs Web和微服务框架——Adonis
  19. 玩转小程序下篇--履带式行走
  20. 在万彩手影大师上怎么制作微课_制作微课最简单方便的设备?

热门文章

  1. python 动态修改 类和实例 的方法
  2. golang指针与c指针的异同
  3. CentOS下tftp 安装配置使用
  4. mysql utf8 和 utf8mb4 区别
  5. static_cast与c风格的强制类型转换比较
  6. PCRE函数简介和使用示例
  7. C++程序安装卸载WDM驱动
  8. AfxOleInit()和::CoInitialize(NULL)区别
  9. SYSENTER——快速系统调用
  10. Android/Service详解/实例分析