最近、Androidの下のDLLライブラリに移植し、そのファイルをコンパイルします。
あきらめることなど経験のmakefile、cmakeのを、取得.....
最後にNDKを解決するには、Androidのコマンドを使用してコンパイル
各NDKファイルの下では、それはすべてのツールチェーン、ヘッダファイル、ライブラリなどが含まれています
D:次のようなNDK-buildコマンドの実行、\ 10.AndroidSDK \ NDK \アンドロイド - NDK-R15B \ NDK-build.cmd、NDKのR15のバージョンを使用してコンパイルされています
NDKビルドコンパイラは、指定された作業ディレクトリの下にJNI / Android.mkとJNI / Application.mkを検索する場合、これらのファイルは、標準のmakefileです
コンパイル時間をどのようなSTL、このようないくつかのABIをコンパイルするなど、すべてのオプションの下でApplication.mk定義されたAPP、
例:
#APP_ABIは、現在サポートされているすべてのサポートされているプラットフォームを生成します。書き込まないでください:armeabi arm64-v8a armeabi- v7a #1 APP_ABI: = armeabi arm64-v8a armeabi- v7a MIPS MIPS64 x86のx86_64版 #1 APP_ABI: = すべて APP_ABI: = arm64- v8a APP_STL: = C ++ _静的
Android.mkコンパイラがモジュール名を決定するために、それぞれのマクロを定義する、一つ以上のモジュールを定義し、対応するソース・コード・ファイル
例:
LOCAL_PATH:= $(MY-コールDIR ) が含ま$(CLEAR_VARS) .soという名前のライブラリーを生成するには#。JavaコードSystem.loadLibraryを(" こんにちは" );ロードはそれということです LOCAL_MODULE: = XXXXXX #C ++ ファイル LOCAL_SRC_FILES: = ../src/XXX/AAA。CPP \ .. / SRC / XXX / BBB。のCPP \ 。 。 / SRC / XXX / Base64で/ CBase64。CPP \ .. / SRC / XXX / BB / FF。CPP LOCAL_C_INCLUDES: = $(LOCAL_PATH)/../ incはSRC / /../ $(LOCAL_PATH)でXXX :LOCAL_CFLAGS = -DXXX_EXPORT LOCAL_LDLIBS: = -luvc -lusb100 -ljpeg- turbo1500 LOCAL_LDFLAGS: = -L $(LOCAL_PATH)/../ libに/ $(TARGET_ARCH_ABI)-lm - llog #LOCAL_LDFLAGS: = -L $(LOCAL_PATH)/../ libに/ $(TARGET_ARCH_ABI)-luvc -lusb100 -ljpeg-turbo1500 -lm - llog 含ま$(BUILD_SHARED_LIBRARY)
LOCAL_MODULEは、モジュールの名前を指定します
LOCAL_SRC_FILESは、対応するソースファイルを指定します
$(BUILD_SHARED_LIBRARY)を含めると、コンパイラは、共有ライブラリであることを意味し
ますが、複数のモジュールをコンパイルしたい場合は、あなたがすべきである $(CLEAR_VARS)を含ん使用して、後で$(BUILD_SHARED_LIBRARY)を含める変数をクリアして、
複数のモジュールを追加します。