c++ - QT Widget using OpenCV error deploying to Android -


this question has answer here:

i create qt widget (c++) , use opencv library (c++) , deploy android.

i have installed qt android , necessary files mentioned in http://qt-project.org/doc/qt-5/androidgs.html such ndk,sdk etc. mingw compiler included in qt android didnt have install again.

i have no problem deploying qt widget android. problem using opencv library in qt widget , deploying it.

i have tried 2 options use opencv in qt project:

  1. as qt android comes mingw compiler have compiled opencv library source using cmake , mingw compiler. have included header files , linked libraries in project file of qt . option not work . used method of including , use other libraries such boost , eigen in same way.

  2. i have downloaded opencv android sdk , included it's header files , linked it's libraries in project file of qt. still hasnt worked.

basically want solely code in c++, hence using widget , not qtquick(qml). please can let me know ,if any, of above steps correct , changes have make.

on note know how can speed emulator , have amd processor cant take advantage of intels tools. , can avd settings samsung note 4?

thanks much!!

project file option 1:

qt       += core gui  greaterthan(qt_major_version, 4): qt += widgets  target = test3 template = app   libs+= c:\programs\opencv\release\lib\\\* includepath+= c:\programs\opencv\release\install\include\  sources += main.cpp\         mainwindow.cpp  headers  += mainwindow.h  forms    += mainwindow.ui  config += mobility mobility =  

errors option 1:

12:18:17: starting: "c:\programs\qt\tools\mingw482_32\bin\mingw32-make.exe"  c:\programs\qt\5.3\android_armv7\bin\qmake.exe -spec android-g++ config+=debug -o makefile ..\test3\test3.pro system cannot find path specified. c:\programs\android-ndk-r10c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ --sysroot=c:\programs\android-ndk-r10c/platforms/android-9/arch-arm/ -wl,-soname,libtest3.so -wl,--no-undefined -wl,-z,noexecstack -shared -o libtest3.so main.obj mainwindow.obj moc_mainwindow.obj   -lc:\programs\android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a -lc:\programs\android-ndk-r10c/platforms/android-9/arch-arm//usr/lib c:\programs\opencv\release\lib\\* -lc:/programs/qt/5.3/android_armv7/lib -lqt5widgets -lc:\utils\android\ndk/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a -lc:\utils\android\ndk/platforms/android-9/arch-arm//usr/lib -lc:\utils\icu32_51_1_mingw482\lib -lc:\utils\postgresql\pgsql\lib -lc:\utils\mysql\mysql\lib -lc:\utils\pgsql\lib -lc:\temp\opensll-android-master\openssl-android-master\lib -lc:\programs\qt\5.3\android_armv7/lib -lqt5gui -lqt5core -lglesv2 -lgnustl_shared -llog -lz -lm -ldl -lc -lgcc ..\..\opencv\release\install\include/opencv2/core/mat.hpp:278: error: undefined reference 'cv::fastfree(void*)' ..\..\opencv\release\install\include/opencv2/core/mat.hpp:298: error: undefined reference 'cv::mat::copysize(cv::mat const&)' ..\..\opencv\release\install\include/opencv2/core/mat.hpp:367: error: undefined reference 'cv::mat::deallocate()' ..\test3/main.cpp:23: error: undefined reference 'cv::imread(std::string const&, int)' ..\test3/main.cpp:31: error: undefined reference 'cv::namedwindow(std::string const&, int)' ..\test3/main.cpp:32: error: undefined reference 'cv::_inputarray::_inputarray(cv::mat const&)' makefile:82: recipe target 'libtest3.so' failed ..\test3/main.cpp:32: error: undefined reference 'cv::imshow(std::string const&, cv::_inputarray const&)' ..\test3/main.cpp:34: error: undefined reference 'cv::waitkey(int)' collect2.exe: error: ld returned 1 exit status mingw32-make: *** [libtest3.so] error 1 12:18:22: process "c:\programs\qt\tools\mingw482_32\bin\mingw32-make.exe" exited code 2. error while building/deploying project test3 (kit: android armeabi-v7a (gcc 4.9, qt 5.3.2)) when executing step "make" 12:18:22: elapsed time: 00:04. 

project file option 2:

   #------------------------------------------------- # # project created qtcreator 2014-12-05t18:06:24 # #-------------------------------------------------  qt       += core gui  greaterthan(qt_major_version, 4): qt += widgets  target = test3 template = app  includepath+= c:\programs\opencvandroidsdk\sdk\native\jni\include  libs += -lc:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\ -lopencv_contrib \ -lopencv_legacy \ -lopencv_ml \ -lopencv_objdetect \ -lopencv_calib3d \ -lopencv_video \ -lopencv_features2d \ -lopencv_highgui \ -lopencv_androidcamera \ -lopencv_flann \ -lopencv_imgproc \ -lopencv_core  libs += -lc:\programs\opencvandroidsdk\sdk\native\3rdparty\libs\armeabi-v7a\ -llibjpeg \ -llibpng \ -llibtiff \ -llibjasper \ -ltbb \ -lilmimf  sources += main.cpp\         mainwindow.cpp  headers  += mainwindow.h  forms    += mainwindow.ui  config += mobility mobility = 

errors option 2:

18:24:53: running steps project test3... 18:24:53: configuration unchanged, skipping qmake step. 18:24:53: starting: "c:\programs\qt\tools\mingw482_32\bin\mingw32-make.exe"  mingw32-make: nothing done 'first'. 18:24:55: process "c:\programs\qt\tools\mingw482_32\bin\mingw32-make.exe" exited normally. 18:24:55: starting: "c:\programs\qt\tools\mingw482_32\bin\mingw32-make.exe" install_root="c:\programs\qt projects\build-test3-android_for_armeabi_v7a_gcc_4_9_qt_5_3_2-release\android-build" install copy /y "libtest3.so" "c:\programs\qt projects\build-test3-android_for_armeabi_v7a_gcc_4_9_qt_5_3_2-release\android-build\libs\armeabi-v7a\libtest3.so" system cannot find path specified.         0 file(s) copied. makefile:1627: recipe target 'install_target' failed mingw32-make: [install_target] error 1 (ignored) 18:24:57: process "c:\programs\qt\tools\mingw482_32\bin\mingw32-make.exe" exited normally. error while building/deploying project test3 (kit: android armeabi-v7a (gcc 4.9, qt 5.3.2)) when executing step "deploy android device" 18:27:00: elapsed time: 02:07. 

for option 2:

change

libs += \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_contrib.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_legacy.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_ml.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_objdetect.a\ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_calib3d.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_video.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_features2d.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_highgui.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_androidcamera.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_flann.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_imgproc.a \ c:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a\libopencv_core.a \ c:\programs\opencvandroidsdk\sdk\native\3rdparty\libs\armeabi-v7a\liblibjpeg.a \ c:\programs\opencvandroidsdk\sdk\native\3rdparty\libs\armeabi-v7a\liblibpng.a \ c:\programs\opencvandroidsdk\sdk\native\3rdparty\libs\armeabi-v7a\liblibtiff.a \ c:\programs\opencvandroidsdk\sdk\native\3rdparty\libs\armeabi-v7a\liblibjasper.a \ c:\programs\opencvandroidsdk\sdk\native\3rdparty\libs\armeabi-v7a\libtbb.a \ 

to:

libs += -lc:\programs\opencvandroidsdk\sdk\native\libs\armeabi-v7a \   -lopencv_legacy \   -lopencv_ml \   -lopencv_objdetect\   ... \   -ltbb 

Comments

Popular posts from this blog

python - mat is not a numerical tuple : openCV error -

c# - MSAA finds controls UI Automation doesn't -

wordpress - .htaccess: RewriteRule: bad flag delimiters -