私はNDKでAndroidアプリをC++/OpenCVのコードをインポートしていますとネイティブC++コンパイルにのためのOpenCVのディレクトリを含めます。まず第一に、私はプログラミングに勉強していないと言わなければならない、私は単なるアマチュア開発者なので、私が管理していないことがたくさんある(特に、コーディングから外れている)。Android.mkは - NDK
私はC++/OpenCVのコードをQtCreatorを使用して、私は私のProject.proにこの行を書いた:
INCLUDEPATH += path/to/OpenCV/main/dir #OpenCV-3.1.0
LIBS += -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc
今、私が作るしようとしているの "Hello World!" を私のC++ソースでコンパイルできることを確認してください。 bar.cppで
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myModule
LOCAL_CFLAGS += -I /path/to/OpenCV/main/dir
LOCAL_LDLIBS := -lopencv_core
LOCAL_SRC_FILES := bar.cpp
include $(BUILD_SHARED_LIBRARY)
は、私が持っている:
はhttps://developer.android.com/ndk/guides/android_mk.htmlによると、私はこの単純なAndroid.mkファイルを書いた
#include <opencv2/core/core.hpp>
ただ、コンパイラがソースを見つけたことをチェックするため。私はNDKビルドを使用して、私のC++/OpenCVのネイティブコードをビルドしようとすると、私が手:
non-system libraries in linker flags: -lopencv_core
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the current module
私はLOCAL_STATIC_LIBRARIESとLOCAL_SHARED_LIBRARIESを使用するようにしようと試みたが、ないsucced。何か案は?
P.S:
それは私がこの例https://gist.github.com/gnuanu/252fd406f48f7da2c1c7以下(いずれかのOpenCVのヘッダを含むwthout)NDKを使用して簡単なこんにちは、世界をコンパイルしたと言うことが重要です。
あり、ここでポストAndroid.mk: how to include ffmpeg and Opencvがあるが、それは答えを持っていないと私は情報に解決することはできません...
ありがとう、bashbug!それは今、完璧に動作します。私はApplication.mkのAPP_STLパラメータをstlport_staticからgnustl_sharedに変更しなければなりませんでした。この記事で説明したようにhttp://stackoverflow.com/questions/34740413/using-native-opencv-3-0-0-in-android-studio -1-5-グラデル - 実験 - 0-4-0まで。私はなぜ、私はSTLのバージョン間の違いを知らない正確に理解していない、それはアマチュアXDの問題です – user3368457
私はそれが助けてうれしいです!私の答えを受け入れてください;) – bashbug
ありがとうトン!あなたの答えは、opencvのndk設定をスムーズにアップグレードするのに役立ちました。 – CaladanBrood