自作の Android ディストリビューションに単純な C++ 共有ライブラリを含めようとしています。エラーや警告なしで g++ でコンパイルされています。
今のところ、この .so ライブラリを自作の Android に含める必要があります。
ソースを「$(Android Source)/ndk/source/android/libmd5/jni」にコピーし、次のコンテンツで Android.mk ファイルを作成しました。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS :=
LOCAL_MODULE := libmd5
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib
LOCAL_SRC_FILES := md5.h md5.cc
include $(BUILD_SHARED_LIBRARY)
次に、 ~/.bashrc の最後に次の行を追加しました
export PATH=$PATH:$HOME/AndroidSources/ndk:$HOME/bin/android-sdk-linux/tools
それぞれ NDK と SDK-tools のパスがあります。
ndk-build を起動すると、次のようになります。
andrey@andrey-desktop:~/AndroidSources/ndk/sources/android/libmd5$ ndk-build
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module md5
Android NDK: md5.h md5.cc
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
SharedLibrary : libmd5.so
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++: Command not found
make: *** [obj/local/armeabi/libmd5.so] Error 127
~/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/
をたどると、ビルド済みのディレクトリが見つかりませんでした。config.mk と setup.mk の 2 つのファイルのみが含まれます。
ただし、いくつかダウンロードした ndk-r8e から ndk-build を起動すると、非常に異なる出力が得られます。
$ ndk-build
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module md5
Android NDK: md5.h
Compile++ thumb : md5 <= md5.cc
StaticLibrary : libstdc++.a
SharedLibrary : libmd5.so
Install : libmd5.so => libs/armeabi/libmd5.so
警告は理解しています - .h ファイルは .mk ファイルにあってはなりません。ただし、 libs/armeabi/ に必要なライブラリを取得しました(上記のように)
私はubuntu 12.10ですべてを行い、android sourceからndkを使用しようとしました。
私が間違っていることは何ですか?自作のアンドロイドに含まれる共有ライブラリを取得するには? 十分に詳細な情報を提供できたことを願っています。そうでない場合は、お尋ねください。