2016-10-02 2 views
2

私は私のプロジェクトは、OpenCVののヘッダファイルを開くために取得することはできません。NDKでOpenCV用のhppファイルを参照するには?

enter image description here

(私はそれらが含まをコメントアウト場合)しかし、私はonCreate()OpenCVLoader.initDebug()を呼び出すことにより、OpenCVのは大丈夫動作することを確認できます。

あなたは、私が最初の場所ではありません Android.mkを編集する必要が

enter image description here

I read。それで私は何が欠けているのですか?


EDIT(3時間後):

[OK]を、だから、私はCMakeLists.txtの終わりにこれを追加.HPPファイル含める方法を考え出し:今

include_directories("${CMAKE_SOURCE_DIR}/include" 
    "${CMAKE_SOURCE_DIR}/include/opencv" 
    "${CMAKE_SOURCE_DIR}/include/opencv2" 
    "${CMAKE_SOURCE_DIR}/include/opencv2/core" 
    "${CMAKE_SOURCE_DIR}/include/opencv2/features2d" 
    "${CMAKE_SOURCE_DIR}/include/opencv2/imgproc") 

    add_library(opencv_core STATIC IMPORTED) 
    set_target_properties(opencv_core PROPERTIES 
     IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/prebuilt/libs/armeabi/libopencv_core.a) 

    add_library(opencv_imgproc STATIC IMPORTED) 
    set_target_properties(opencv_imgproc PROPERTIES 
     IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/prebuilt/libs/armeabi/libopencv_imgproc.a) 

    add_library(opencv_features2d STATIC IMPORTED) 
    set_target_properties(opencv_features2d PROPERTIES 
     IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/prebuilt/libs/armeabi/libopencv_features2d.a) 

をIリンクするときにundefined referenceエラーが発生する:

> Build command failed. 
Error while executing 'C:\Users\kfjier\AppData\Local\Android\sdk\cmake\3.6.3155560\bin\cmake.exe' with arguments {--build E:\Dropbox\Freelance\BowlingOpenCV\Bowlingtrainer\app\.externalNativeBuild\cmake\debug\mips64 --target native-lib} 
[1/2] Building CXX object CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o 
[2/2] Linking CXX shared library ..\obj\mips64\libnative-lib.so 
FAILED: cmd.exe /C "cd . && C:\Users\kfjier\AppData\Local\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe -target mips64el-none-linux-android -gcc-toolchain C:/Users/kfjier/AppData/Local/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/kfjier/AppData/Local/Android/sdk/ndk-bundle/platforms/android-21/arch-mips64 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -fno-exceptions -fno-rtti -O0 -fno-limit-debug-info -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ..\obj\mips64\libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -llog -lm "C:/Users/kfjier/AppData/Local/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a" && cd ." 
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o: In function `Java_eu_codehunter_bowlingtrainer_MainActivity_FindFeatures': 
    E:\Dropbox\Freelance\BowlingOpenCV\Bowlingtrainer\app\src\main\cpp/native-lib.cpp:18: undefined reference to `cv::FastFeatureDetector::create(int, bool, int)' 
    E:\Dropbox\Freelance\BowlingOpenCV\Bowlingtrainer\app\src\main\cpp/native-lib.cpp:19: undefined reference to `cv::noArray()' 
    E:\Dropbox\Freelance\BowlingOpenCV\Bowlingtrainer\app\src\main\cpp/native-lib.cpp:23: undefined reference to `cv::circle(cv::_InputOutputArray const&, cv::Point_<int>, int, cv::Scalar_<double> const&, int, int, int)' 
    clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation) 
    ninja: build stopped: subcommand failed. 

なぜですか?

答えて

0

私はcv :: FastFeatureDetectorクラスがlibopencv_features2d.aに属し、cv :: circle()関数がlibopencv_highgui.aに属していると思います。したがって、それらのライブラリを含める必要があります。もっと簡単な方法は、すべてのOpenCVライブラリを含む共有ライブラリとして単一のlibopencv_java3.soを追加することです。

関連する問題