【发布时间】:2017-03-12 05:00:27
【问题描述】:
我想从 OpenCV 2.4.x 源文件生成 libopencv_java.so 文件,从 OpenCV 3.x.x 源文件生成 libopencv3_java.so,以便能够将 OpenCV 库动态链接到我的 Android 应用程序。
虽然我可以通过 CMake 和 MinGW 在基于 Win64 的开发机器上为“armeabi-v7a”使用“Unix makefiles”从主干重建静态链接的 *.a 库文件(例如 libopencv_core.a 和 libopencv_imgproc.a), arm64-v8a、x86 和 x86_64" 目标;我无法重现动态链接的 libopencv_java 和 libopencv3_java.so 文件,并且在 OpenCV 网站或任何其他知识库上找不到有关此问题的任何相关信息。
谁能向我解释如何通过 CMake 和 MinGW 在基于 Win64 的开发机器上生成这些 *.so 文件?我想对一些 OpenCV 源文件做些小改动,然后从头开始重现所有内容。
只要能正常工作,使用“Unix makefiles”或“MinGW makefiles”或任何其他配置并不重要。
提前致谢
【问题讨论】:
-
所以,如果我了解您想使用 cmake 和 unix makefile 链接您的 opencv 库,对吗?您能否发布您的 cmake 脚本以及您使用的是什么工具链?
-
我想从我从其 GitHub 存储库和 afaik 下载的 OpenCV 源代码为 Android 生成“opencv_java”共享库,无论如何,cmake 是生成必要构建文件的唯一选择。我也想使用 Unix makefile,所以是的。该工具链由 Android NDK 提供。问题是,我在生成的构建脚本中看不到“opencv_java”目标。因此,虽然我可以生成静态库文件(例如 libopencv_calib3d.a),但是当我为任何目标平台(例如“armeabi-v7a”)“make -j4”生成的 makefile 时,我无法生成 libopencv_java3.so 共享库文件。
标签: android c++ opencv android-ndk cmake