android boost android-ndk makefile

NDK de Android: Incluye la biblioteca boost c++



android-ndk makefile (2)

Aquí: http://silverglint.com/boost-for-android/ puede encontrar un script simple que le permite crear una versión moderna (por ejemplo, 1.67.0) de boost para Android, o simplemente descargar archivos binarios precompilados.

También se incluye una aplicación de prueba de muestra que muestra cómo incluir / vincular los encabezados / binarios de boost

Estoy tratando de usar una biblioteca boost dentro de mi aplicación de Android, usando el NDK. He encontrado un par de historias de éxito here y here , pero no puedo decir lo mismo de mí. Estoy tratando específicamente de utilizar la biblioteca en este enlace , así como la biblioteca de subprocesos de impulso. En el código a continuación, solo trato de incluir la biblioteca de hilos, no la biblioteca de matemáticas. El proceso que utilicé para construir las bibliotecas boost es prácticamente el mismo que el primer enlace que adjunté.

Hasta ahora, parece que he construido con éxito las bibliotecas boost, pero cuando ejecuto ndk-build , ndk-build el siguiente error:

Prebuilt : libboost_thread.a <= <NDK>/sources/ cp: omitting directory `path/to/ndk/sources/boost'' make: *** [obj/local/armeabi/libboost_thread.a] Error 1

Obviamente, el cp: omitting directory... no es exactamente un error. Pero lo único que estoy obteniendo aparte de eso es la siguiente línea, que realmente no significa nada. Error 1

Aquí está mi archivo de Android.mk:

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_STATIC_LIBRARIES := boost_thread LOCAL_LDLIBS := lboost_system-gcc-md lboost_thread-gcc-md -lgnustl_static LOCAL_LDLIBS += lboost_system-gcc-md lboost_thread-gcc-md / -L$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi / -lgnustl_static LOCAL_SRC_FILES := #cpp_sources LOCAL_MODULE := com_example_ndkFile_CppMethods include $(BUILD_SHARED_LIBRARY) $(call import-module,boost)

Y también hay un archivo Android.mk en la path/to/ndk/sources/boost/ :

LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE:= boost_thread LOCAL_SRC_FILES:= android/lib/libboost_thread.a LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) include $(PREBUILT_STATIC_LIBRARY)

Y mi humilde archivo Application.mk:

APP_ABI := armeabi armeabi-v7a APP_STL := gnustl_static APP_CPPFLAGS = -fexceptions

Construí las librerías boost usando bjam . Todos los libboost_###.a están en la carpeta sources/boost/android/lib .

¿Cuál es el error que estoy recibiendo?


Construí las librerías boost usando Boost-for-Android . Luego tengo en mi directorio boost / include / lib el makefile de Android boost.mk

LOCAL_PATH := $(call my-dir) # boost_date_time # include $(CLEAR_VARS) LOCAL_MODULE := boost_date_time LOCAL_SRC_FILES := libboost_date_time-gcc-mt-1_53.a include $(PREBUILT_STATIC_LIBRARY) # boost_filesystem # include $(CLEAR_VARS) LOCAL_MODULE := boost_filesystem LOCAL_SRC_FILES := libboost_filesystem-gcc-mt-1_53.a include $(PREBUILT_STATIC_LIBRARY) # boost_thread # include $(CLEAR_VARS) LOCAL_MODULE := boost_thread LOCAL_SRC_FILES := libboost_thread-gcc-mt-1_53.a include $(PREBUILT_STATIC_LIBRARY) # boost_system # include $(CLEAR_VARS) LOCAL_MODULE := boost_system LOCAL_SRC_FILES := libboost_system-gcc-mt-1_53.a include $(PREBUILT_STATIC_LIBRARY) # boost_program_options # include $(CLEAR_VARS) LOCAL_MODULE := boost_program_options LOCAL_SRC_FILES := libboost_program_options-gcc-mt-1_53.a include $(PREBUILT_STATIC_LIBRARY) # boost_chrono # include $(CLEAR_VARS) LOCAL_MODULE := boost_chrono LOCAL_SRC_FILES := libboost_chrono-gcc-mt-1_53.a include $(PREBUILT_STATIC_LIBRARY)

y mi módulo en el que uso algunas de las bibliotecas de refuerzo se ve así

LOCAL_PATH := $(call my-dir) # SignalServer, executable # include $(CLEAR_VARS) LOCAL_CFLAGS := -DTIXML_USE_TICPP #LOCAL_CFLAGS += -DDEBUG LOCAL_STATIC_LIBRARIES := boost_thread / boost_system / boost_filesystem / boost_program_options / boost_chrono / LOCAL_STATIC_LIBRARIES += ticpp / tia / tobicore / tobiid / tid / gdf LOCAL_MODULE := signalserver LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_C_INCLUDES += $(LOCAL_PATH)/extern/include LOCAL_C_INCLUDES += $(LOCAL_PATH)/../boost/include/boost-1_53 LOCAL_SRC_FILES := #cpp source include $(BUILD_EXECUTABLE)

Además, tengo un Android.mk donde se enumeran todos los archivos make de subdir.

TOP_PATH := $(call my-dir) include $(TOP_PATH)/boost/lib/boost.mk include $(TOP_PATH)/signalserver/signalserver.mk . .

y mi aplicación.mk:

APP_PLATFORM := android-14 APP_ABI := armeabi-v7a #APP_OPTIM := debug #NDK_DEBUG := 1 NDK_TOOLCHAIN_VERSION := 4.6 APP_STL := gnustl_static APP_CPPFLAGS := -fexceptions -frtti