如何创建* .so文件以动态链接OpenCV for Android?

时间:2016-10-29 13:43:27

标签: android c++ opencv android-ndk cmake

我想从OpenCV 2.4.x源文件生成libopencv_java.so文件,从OpenCV 3.x.x源文件生成libopencv3_java.so,以便能够将OpenCV库动态链接到我的Android应用程序。

虽然我可以通过CMake& amp;中心从主干重建静态链接的* .a库文件(例如libopencv_core.a和libopencv_imgproc.a)。 MinGW在基于Win64的开发机器上使用“Unix makefile”,用于“armeabi-v7a,arm64-v8a,x86& x86_64”目标;我无法重现动态链接的libopencv_java& libopencv3_java.so文件,我在OpenCV网站或任何其他知识库中找不到有关此问题的任何相关信息。

有人可以向我解释如何通过CMake& amp;和基于Win64的开发机器生成这些* .so文件。 MinGW的?我想对一些OpenCV源文件进行小的更改,然后从头开始重现所有内容。

只要它正常工作,使用“Unix makefile”或“MinGW makefile”或任何其他配置并不重要。

先谢谢

2 个答案:

答案 0 :(得分:1)

对于那些可能在将来遇到类似问题的人,我通过将特定架构(armeabi-v7a,arm64-v8a,x86,x86_64等)的新创建的* .a文件放入其中来解决了这个问题在OpenCV Android预建库文件夹下的适当位置,并通过我自己的Android.mk和Application.mk文件重建该文件夹下的“libopencv_java3.so”。我还使用Python 3作为“BUILD_opencv_java”和“BUILD_FAT_JAVA_LIB”组件的代码生成阶段,而不是一起使用Python 2和Python 3。

答案 1 :(得分:0)

为了生成opencv_java,需要做的是你需要在你的系统中安装python2,java,ant-executable。如果我猜对了,你必须使用cmake来生成.a文件。如果您使用的是一些不同的方法,请按照以下链接中的步骤操作: http://amin-ahmadi.com/2017/08/13/how-to-build-opencv-3-3-x-for-android/ 按照上面提到的步骤,您应该能够生成opencv_java文件。