Red de conocimiento informático - Conocimiento informático - Cómo portar la biblioteca boost a Android

Cómo portar la biblioteca boost a Android

Aquí se explica cómo compilar boost usando NDK, pero funcionó para mí. Después de todo el arduo trabajo, la compilación finalmente fue un éxito, ¡sed felices, jaja! Reimprimir

El proceso principal se registra a continuación:

1. Descargue el código fuente de boost:

Boost para Android

Boost para Android. Sí. Un conjunto de herramientas para compilar la parte principal de la biblioteca Boost C para la plataforma Android.

Las versiones boost actualmente admitidas son 1.45.0, 1.48.0 y 1.49.0.

Las versiones boost actualmente admitidas son 1.45.0, 1.48.0 y 1.49.0.

Descargue la última versión 1.49 y parcheela cuando haya terminado

2.

2. Descargue el código del parche

boost-1_49_0

3. Parche el código

boost_1_49_0.tar.bz2 y póngalo. en Android El directorio externo y descomprimirlo:

tar -xjvf external/boost_1_49 _0.tar.bz2

Coloque boost-1_49_0.patch en el directorio raíz en external\boost_1_49_0, luego ejecutar:

parche -Np1 -d external/boost_1_49_0 lt; external/boost_1_49_0/boost-1_49_0/boost-1_49_0/boost-1_49_0.tar.bz2 0/boost-1_49_0.patch

4. Escribe el archivo MAKE Android.mk para impulsar

LOCAL_PATH:= $(call my-dir)

common_SRC_FILES:= \

libs/ thread. /src/pthread/thread.cpp (

libs/thread/src/pthread/once.cpp) (

common_SRC_FILES = (

libs/filesystem / v3/src/ codecvt_error_category.cpp \

libs/filesystem/v3/src/operaciones.cpp \

libs/filesystem/v3/src/path.cpp \

libs/ filesystem/v3/src/path_traits.cpp \

libs/filesystem/v3/src/portability.cpp \

libs/filesystem/v3/src/ utf8_codecvt_facet .cpp \

libs/system/src/error_code.cpp\

libs/system/src/local_free_on_destruction\

incluye $(CLEAR_VARS)

LOCAL _MODULE := libboost

LOCAL_SRC_FILES := $(common_SRC_FILES)

prebuilt_stdcxx_PATH := prebuilts/ndk/current/sources/cxx-stl/gnu -libstdc < / p>

LOCAL_C_INCLUDES:=\

$(LOCAL_PATH)/boost\

$(prebuilt_stdcxx_PATH)/include\

$(prebuilt_stdcxx_ PATH) / libs/$(TARGET_CPU_ABI)/include/ \

LOCAL_C_INCLUDES =\

$(prebuilt_stdcxx_PATH)/include \

$(prebuilt_stdcxx_

PATH)/libs/$(TARGET_CPU_ABI)/include/ \

$(prebuilt_supccxx_PATH)/include

LOCAL_CFLAGS = -fvisibility=hidden -lpthread

LOCAL_CPPFLAGS = -fexceptions -frtti

LOCAL_SHARED_LIBRARIES := libc libstdc libstlport

LOCAL_LDFLAGS = -L$(prebuilt_ stdcxx_PATH)/libs/$(TARGET_CPU_ABI) -lgnustl_static -lsupc

LOCAL_MODULE_TAGS:= opcional

incluye $(BUILD_SHARED_LIBRARY)

La parte más importante es el texto rojo de arriba

La compilación final genera:

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/thread/src/pthread/thread.cpp

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/thread/src/ pthread/once.cpp

pulgar de destino C: libboost lt;= external/ boost_1_49_0/libs/filesystem/v3/src/codecvt_error_category.cpp

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/ filesystem/v3/src/operaciones.cpp

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/filesystem/v3/src/path.cpp

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/filesystem/v3/src/path.cpp

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/filesystem/v3/ src/portability.cpp

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/ filesystem/v3/src/utf8_codecvt_facet.cpp

pulgar de destino C: libboost lt;= external/boost_1_49_0/libs/system/src/error_code.cpp

destino SharedLib: libboost (out/target/product/godbox/obj/SHARED_LIBRARIES/li

bboost_intermediates/LINKED/libboost.so)

Símbolos de destino: libboost (out/target/product/godbox/symbols/system/lib/libboost.so)

Eliminación de destino: libboost ( out/target/product/godbox/obj/lib/lib.so)

Eliminación de objetivos: libboost (out/target/product/godbox/obj/lib/libboost.so)

Instalación: out/target/product/godbox/system/lib/libboost.so

Biblioteca de funciones libboost.so generada con éxito