Opencv: сборка java-модуля не удалась

Созданный на 6 нояб. 2015  ·  3Комментарии  ·  Источник: opencv/opencv

Привет, я собираю opencv4android с помощью opencv_contrib.
Я делаю так:
cmake -Wno-dev -DOPENCV_EXTRA_MODULES_PATH=/home/charles/Programs/opencv-3.0.0/opencv_contrib-3.0.0/modules -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_TOOLCHAIN_FILE=../android/android.toolchain.cmake
!================================================ ===============
Выходы cmake здесь:
https://gist.github.com/happycharleswang/345a21b4db88141980fe
!================================================ ===============

Я получил эту ошибку, когда make -j8

Сканирование зависимостей целевого объекта opencv_java
[90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/generator/src/cpp/jni_part.cpp.o
[90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/generator/src/cpp/Mat.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/generator/src/cpp/converters.cpp.o
[90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/generator/src/cpp/utils.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/ /core/misc/java/src/cpp/core_manual.cpp.o[90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/ /features2d/misc/java/src/cpp/features2d_converters.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/core.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/imgproc.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/ml.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/photo.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/video.cpp.o
[ 90%] Сборка объектных модулей CXX/java/CMakeFiles/opencv_java.dir/imgcodecs.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/videoio.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/objdetect.cpp.o
[ 90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/bioinspired.cpp.o
[90%] Создание объектных модулей CXX/java/CMakeFiles/opencv_java.dir/features2d.cpp.o
[ 90%] Сборка объектных модулей CXX/java/CMakeFiles/opencv_java.dir/calib3d.cpp.o
[ 90%] Связывание общей библиотеки CXX ../../lib/armeabi-v7a/libopencv_java3.so
../../lib/armeabi-v7a/libopencv_text.a(ocr_tesseract.cpp.o):ocr_tesseract. cpp:function cv::text::OCRTesseractImpl::run(cv::Mat&, std::string&, std::vectorcv::Rect_>_, стд::вектор>_, int): ошибка: неопределенная ссылка на 'tesseract::TessBaseAPI::GetUTF8Text()'
collect2: ошибка: ld вернул 1 статус выхода
make[2]: _* [lib/armeabi-v7a/libopencv_java3.so] Ошибка 1make[1]: * * [modules/java/CMakeFiles/opencv_java.dir/all] Ошибка 2
сделать: *** [все] Ошибка 2
!================================================ ===============
какие-нибудь советы?

Все 3 Комментарий

1) Это связано с opencv_contrib, поэтому правильное место здесь: https://github.com/Itseez/opencv_contrib/issues
2) Похоже, в режиме кросс-компиляции происходит неправильное определение тессеракта.
3) Обходной путь для этого — отключить «текстовый» модуль: -DBUILD_opencv_text=OFF

Спасибо.

-DBUILD_opencv_java=OFF работает.

-DBUILD_opencv_text=OFF также работает.

Это означает, что и java-модуль, и текстовый модуль связаны с этой проблемой.

Сообщение ниже не имеет отношения к этой проблеме:


Buenas Noches, @alalek и @happycharleswang , как исправить ошибку:

[ 61%] Генерация opencv-310.jar
/usr/lib/jvm/java-7-openjdk-armhf/jre/lib/rt.jar: inflateFully: неожиданный конец потока

ПОСТРОЙКА НЕ ПРОШЛА
java.lang.NoClassDefFoundError: java/math/BigInteger
в org.apache.tools.ant.types.Resource.getMagicNumber(Resource.java:58)
на org.apache.tools.ant.types.Resource.(Ресурс.java:48)
в org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:90)
в org.apache.tools.ant.Main.runBuild(Main.java:826)
в org.apache.tools.ant.Main.startAnt(Main.java:235)
на org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
на org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Вызвано: java.lang.ClassNotFoundException: java.math.BigInteger
на java.net.URLClassLoader$1.run(URLClassLoader.java:359)
на java.net.URLClassLoader$1.run(URLClassLoader.java:348)
в java.security.AccessController.doPrivileged (собственный метод)
на java.net.URLClassLoader.findClass(URLClassLoader.java:347)
в java.lang.ClassLoader.loadClass(ClassLoader.java:425)
в java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... еще 7

Общее время: 0 секунд
java.lang.NoClassDefFoundError: java/math/BigInteger
в org.apache.tools.ant.types.Resource.getMagicNumber(Resource.java:58)
на org.apache.tools.ant.types.Resource.(Ресурс.java:48)
в org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:90)
в org.apache.tools.ant.Main.runBuild(Main.java:826)
в org.apache.tools.ant.Main.startAnt(Main.java:235)
на org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
на org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Вызвано: java.lang.ClassNotFoundException: java.math.BigInteger
на java.net.URLClassLoader$1.run(URLClassLoader.java:359)
на java.net.URLClassLoader$1.run(URLClassLoader.java:348)
в java.security.AccessController.doPrivileged (собственный метод)
на java.net.URLClassLoader.findClass(URLClassLoader.java:347)
в java.lang.ClassLoader.loadClass(ClassLoader.java:425)
в java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... еще 7
Java/математика/BigInteger
модули/java/CMakeFiles/opencv_java.dir/build. make:12619 : рецепт для цели 'bin/opencv-310.jar' не удался
make[2]: * [bin/opencv-310.jar] Ошибка 1CMakeFiles/Makefile2:14610: рецепт для целевых «модулей/java/CMakeFiles/opencv_java.dir/all» не удалсяmake[1]: [modules/java/CMakeFiles/opencv_java.dir/all] Ошибка 2
Makefile:160 : рецепт для цели «все» не удался
make: ** [все] Ошибка 2

Вы можете использовать Raspberry Pi 1 B, для части сделать OpenCV, если вы мне очень благодарны.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги