NDKを使用すると、PREBUILT_SHARED_LIBRARY変数を使用して、事前ビルドされたユーザーライブラリとリンクすることができます。ちょうど作成し、その後
mkdir -p jni/libs
cp librandom.so jni/libs
jni/libs/Android.mk
ファイル:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := random
LOCAL_SRC_FILES := librandom.so
include $(PREBUILT_SHARED_LIBRARY)
をリンクする必要があるライブラリがlibrandom.soであると仮定すると
、プロジェクトフォルダのサブフォルダにjni
libs
フォルダを作成
事前ビルドされたライブラリごとにセクションを作成できます。これらのライブラリはすべてjni/libs
に配置されています。
次に、動作させるには、jni/Android.mkに上記のファイルを含める必要があります。 NDKのドキュメントでは、むしろ真ん中よりも、Android.mkの最後に行われることをお勧めします。
include $(LOCAL_PATH)/libs/Android.mk
しかし、あなたはこのライブラリを必要とするモジュールの前にこれを実行する必要があります。
リンクするには、あらかじめビルドされたライブラリにリンクするモジュールセクションに以下を追加する必要があります。あなたはNDKビルドを行う際
LOCAL_SHARED_LIBRARIES := random
はその後、それがモジュールをビルドする前にlibs/armeabi/
にこのライブラリをコピーし、あなたが行ってもいいです。
注:必須ヘッダーの問題は解決しません。ライブラリのヘッダーの場所を必要なモジュールの変数LOCAL_C_INCLUDES
に追加する必要があります。
更新:1つのライブラリが別のライブラリに依存する場合は、http://stackoverflow.com/questions/17688327/android-ndk-make-two-native-shared-libraries-calling-each-otherを参照してください。 – 18446744073709551615