Я пытаюсь включить простую общую библиотеку C++ в самостоятельную сборку Android. Он был скомпилирован с g ++ без каких-либо ошибок и предупреждений.Включите совместно используемую библиотеку C++ в самодельный Android. Ошибка при запуске ndk-build
На данный момент мне нужно включить эту .so-библиотеку в самостоятельный андроид.
Я скопировал мой источник в '$ (Android 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
Существуют пути НКА и SDK-инструменты соответственно.
Когда я запускать НДК-сборки я получаю следующую вещь:
[email protected]:~/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/НДК/компилированные инструменты/рычажного линукс-androideabi-4.4.3/
я не сделал найденный предварительно созданный каталог. Там в том числе только два файла: Config.mk и setup.mk
Однако в то время как я запускать NDK-строить из severally downloaded НДК-R8e я получаю совсем другой вывод:
$ 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 и попытался использовать ndk от android source.
Что я делаю неправильно? Как получить включенную совместно используемую библиотеку в самодельном Android? Надеюсь, я предоставил информацию достаточно подробно. Если нет, спрашивайте.
Похоже, что загрузка пакета ndk из Google решила ваш про я проблема. Вы должны использовать версию, которую они упаковывают, а не версию из своего исходного репозитория. – krsteeve