AndroidNDKでの共有ライブラリの設定方法

2015年7月26日

ndk-build を行うプロジェクト内で、別のライブラリを読み込む場合、Android.mk に宣言をしておく必要があります。
書いてなくてもビルドは通りますが、実行時に参照エラーが出るという面倒くさいことになります。

今回は、共有ライブラリおよび静的ライブラリの NDK での設定方法をまとめておきます。

[環境]
・Mac OS X 10.10.4 Yosemite
・Android NDK r10e

・共有ライブラリ libsample.so をリンクする場合
libsample.so を参照したいプロジェクトのビルド設定より前に、以下のような宣言を行います。
この先のサンプルでは、以下のようにファイルが配置されているものとします。

Android.mk : /jni/Android.mk
libsample.so : /jni/lib/x86/libsample.so
libsample.a : /jni/lib/x86/libsample.a

include $(CLEAR_VARS)
LOCAL_MODULE := sample
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libsample.so
include $(PREBUILT_SHARED_LIBRARY)

また、参照したいプロジェクト側のビルド設定には、以下の項目を追加します。

LOCAL_SHARED_LIBRARIES += libsample

・静的ライブラリ libsample.a をリンクする場合
共有ライブラリの場合とほとんど変わりません。

include $(CLEAR_VARS)
LOCAL_MODULE := sample
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libsample.a
include $(PREBUILT_STATIC_LIBRARY)

また、参照したいプロジェクト側のビルド設定には、以下の項目を追加します。

LOCAL_STATIC_LIBRARIES += sample

おしまい。

スポンサーリンク

Android,NDKandroid,NDK

Posted by peliphilo