Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Путин
42 / 22 / 6
Регистрация: 14.04.2011
Сообщений: 578
#1

NDK библиотека собирается только под arm64-v8a - Android

20.07.2015, 01:39. Просмотров 574. Ответов 0
Метки нет (Все метки)

Использую Crystax NDK решил попробовать собрать проект под все платформы и тут увидел что он собирает только под 1 и мне кажется это связанно с добавлением посторонних .so библиотек в проект, хотя как раз таки посторонние библиотеки все оказываются в своих папках.

Application.mk:
Код
APP_ABI := all
#APP_ABI := armeabi
APP_PLATFORM := android-14
APP_OPTIM := release
APP_STL:= gnustl_static
APP_CFLAGS += -Wno-error=format-security
APP_LIBCRYSTAX := static

APP_CPPFLAGS := -std=c++0x
APP_USE_CPP0X := true

#APP_OPTIM := debug
NDK_TOOLCHAIN_VERSION := 4.9
Android.mk:
Код
LOCAL_PATH := $(call my-dir)

LOCAL_MODULE    := MyLib
LOCAL_SRC_FILES := MyLib.cpp
LOCAL_SRC_FILES += Settings.cpp
LOCAL_SRC_FILES += database/db.cpp

LOCAL_CFLAGS := -pthread 
LOCAL_CFLAGS += -frtti 
LOCAL_CFLAGS += -fexceptions 
LOCAL_CFLAGS += -DNDEBUG -Os -s -Wl,--strip-all
LOCAL_CFLAGS += -DOPENSSL_NO_ENGINE
LOCAL_CFLAGS += -IE:/Android/workspace/test/jni/OpenSSL/include
LOCAL_CFLAGS += -LE:/Android/workspace/test/jni/OpenSSL

LOCAL_LDLIBS := -llog
LOCAL_LDLIBS += -landroid
LOCAL_LDLIBS += -ldl


LOCAL_STATIC_LIBRARIES := boost_system_static
LOCAL_STATIC_LIBRARIES += boost_thread_static
LOCAL_STATIC_LIBRARIES += boost_filesystem_static
LOCAL_STATIC_LIBRARIES += sqlite3_static
LOCAL_SHARED_LIBRARIES := ssl
LOCAL_SHARED_LIBRARIES += crypto

include $(BUILD_SHARED_LIBRARY)
$(call import-module,boost/1.58.0)
$(call import-module,sqlite/3)

include $(CLEAR_VARS)
LOCAL_MODULE := ssl
LOCAL_SRC_FILES := E:/Android/workspace/test/jni/OpenSSL/$(TARGET_ARCH_ABI)/libssl.so
LOCAL_EXPORT_C_INCLUDES := C:/Users/Wex/Desktop/openssl-1.0.1e/ssl
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := crypto
LOCAL_SRC_FILES := E:/Android/workspace/test/jni/OpenSSL/$(TARGET_ARCH_ABI)/libcrypto.so
LOCAL_EXPORT_C_INCLUDES := C:/Users/Wex/Desktop/openssl-1.0.1e/crypto
include $(PREBUILT_SHARED_LIBRARY)
Лог сборки:
Код
[arm64-v8a] Compile++      : MyLib <= MyLib.cpp
[arm64-v8a] Compile++      : MyLib <= Settings.cpp
[arm64-v8a] Compile++      : MyLib <= db.cpp
[arm64-v8a] Prebuilt       : libssl.so <= E:/Android/workspace/test/jni/OpenSSL/arm64-v8a/
[arm64-v8a] Prebuilt       : libcrypto.so <= E:/Android/workspace/test/jni/OpenSSL/arm64-v8a/
[arm64-v8a] SharedLibrary  : libMyLib.so
[arm64-v8a] Install        : libMyLib.so => libs/arm64-v8a/libMyLib.so
[arm64-v8a] Install        : libcrypto.so => libs/arm64-v8a/libcrypto.so
[arm64-v8a] Install        : libssl.so => libs/arm64-v8a/libssl.so

[x86_64] Compile++      : MyLib <= MyLib.cpp
[x86_64] Compile++      : MyLib <= Settings.cpp
[x86_64] Compile++      : MyLib <= db.cpp
[x86_64] Prebuilt       : libcrypto.so <= E:/Android/workspace/test/jni/OpenSSL/x86_64/
[x86_64] Prebuilt       : libssl.so <= obj/local/x86_64/objs/MyLib/
[x86_64] Install        : libssl.so => libs/x86_64/libssl.so
[x86_64] Install        : libcrypto.so => libs/x86_64/libcrypto.so

[mips64] Compile++      : MyLib <= MyLib.cpp
[mips64] Compile++      : MyLib <= Settings.cpp
[mips64] Compile++      : MyLib <= db.cpp
[mips64] Prebuilt       : libcrypto.so <= E:/Android/workspace/test/jni/OpenSSL/mips64/
[mips64] Prebuilt       : libssl.so <= obj/local/mips64/objs/MyLib/
[mips64] Install        : libssl.so => libs/mips64/libssl.so
[mips64] Install        : libcrypto.so => libs/mips64/libcrypto.so

[armeabi-v7a] Compile++ thumb: MyLib <= MyLib.cpp
[armeabi-v7a] Compile++ thumb: MyLib <= Settings.cpp
[armeabi-v7a] Compile++ thumb: MyLib <= db.cpp
[armeabi-v7a] Prebuilt       : libcrypto.so <= E:/Android/workspace/test/jni/OpenSSL/armeabi-v7a/
[armeabi-v7a] Prebuilt       : libssl.so <= obj/local/armeabi-v7a/objs/MyLib/
[armeabi-v7a] Install        : libssl.so => libs/armeabi-v7a/libssl.so
[armeabi-v7a] Install        : libcrypto.so => libs/armeabi-v7a/libcrypto.so

[armeabi] Compile++ thumb: MyLib <= MyLib.cpp
[armeabi] Compile++ thumb: MyLib <= Settings.cpp
[armeabi] Compile++ thumb: MyLib <= db.cpp
[armeabi] Prebuilt       : libcrypto.so <= E:/Android/workspace/test/jni/OpenSSL/armeabi/
[armeabi] Prebuilt       : libssl.so <= obj/local/armeabi/objs/MyLib/
[armeabi] Install        : libssl.so => libs/armeabi/libssl.so
[armeabi] Install        : libcrypto.so => libs/armeabi/libcrypto.so

[x86] Compile++      : MyLib <= MyLib.cpp
[x86] Compile++      : MyLib <= Settings.cpp
[x86] Compile++      : MyLib <= db.cpp
[x86] Prebuilt       : libcrypto.so <= E:/Android/workspace/test/jni/OpenSSL/x86/
[x86] Prebuilt       : libssl.so <= obj/local/x86/objs/MyLib/
[x86] Install        : libssl.so => libs/x86/libssl.so
[x86] Install        : libcrypto.so => libs/x86/libcrypto.so

[mips] Compile++      : MyLib <= MyLib.cpp
[mips] Compile++      : MyLib <= Settings.cpp
[mips] Compile++      : MyLib <= db.cpp
[mips] Prebuilt       : libcrypto.so <= E:/Android/workspace/test/jni/OpenSSL/mips/
[mips] Prebuilt       : libssl.so <= obj/local/mips/objs/MyLib/
[mips] Install        : libssl.so => libs/mips/libssl.so
[mips] Install        : libcrypto.so => libs/mips/libcrypto.so
Явно что то с Make не то, OpenSSL библиотеки удачно появляются на своих местах, а моя только в 1...

Добавлено через 1 час 48 минут
Заметил что в самом начале нет "include $(CLEAR_VARS)"
добавил, после компиляция останавливалась с кучей "multiple definition", или Eclipse не знает что такое clean или я что то не так делаю, пришлось удалить все объекты .o и только тогда компиляция успешно прошла под все платформы.
Вопрос решен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2015, 01:39     NDK библиотека собирается только под arm64-v8a
Посмотрите здесь:

Android Android NDK
Android NDK и SDK
Android Android NDK
Android SDK or NDK
NDK под Android Studio Android
Подключить NDK Android
NDK C vs C++ и примеры Android
Использование NDK Android
Android TCP клиент в NDK
Есть некая библиотека, сделана в QT. Как скомпилить под Андроид с использованием qt-lib? Android
AS и Ndk Android
Android Не собирается приложение с android NDK

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru