NDK-build.cmd / .SHを使用して:そうコンパイルネイティブのAndroidの下で

最近、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)を含める変数をクリアして、
複数のモジュールを追加します。
 
 


 

おすすめ

転載: www.cnblogs.com/eaglexmw/p/11463071.html