android 编译boost动态库

来源:互联网 发布:手机版美工图片软件 编辑:程序博客网 时间:2024/04/29 03:44

有个android项目上需要使用到boost标准c++库,Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一,所以想将其移植到android系统上进行编译。

直接从网上下载 boost1.52版本,然后写makefile。。。进行编译,,碰到无数的编译错误。求助于google网络,终于发现一个好东东:

一个通过NDK编译boost代码的git项目:
https://github.com/MysticTreeGames/Boost-for-Android

这里是使用NDK进行编译boost的但肯定对我有用吧。。经过一番折腾终于编译成功,,高兴,呵呵!

下面将主要的过程记录下来:

1、下载boost 源码:

由于https://github.com/MysticTreeGames/Boost-for-Android这里说明:

       Boost for Android

Boost for android is a set of tools to compile the main part of the Boost C++ Libraries for the Android platform.

Currently supported boost versions are 1.45.0, 1.48.0 and 1.49.0.

因此下载最新的 1.49 版本,下载完成后进行打补丁

2、下载补丁代码

https://github.com/MysticTreeGames/Boost-for-Android/tree/master/patches/boost-1_49_0

3、打补丁代码

      boost_1_49_0.tar.bz2 放在android的 external 下解压:

      tar -xjvf external/boost_1_49_0.tar.bz2


      将boost-1_49_0.patch放在external\boost_1_49_0下面根目录执行:

      patch -Np1 -d external/boost_1_49_0 < external/boost_1_49_0/boost-1_49_0.patch


4、编写boost的makefile文件,即Android.mk

      

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/operations.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 \include $(CLEAR_VARS)LOCAL_MODULE:= libboostLOCAL_SRC_FILES := $(common_SRC_FILES)
prebuilt_stdcxx_PATH := prebuilts/ndk/current/sources/cxx-stl/gnu-libstdc++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)/includeLOCAL_CFLAGS += -fvisibility=hidden -lpthreadLOCAL_CPPFLAGS += -fexceptions -frttiLOCAL_SHARED_LIBRARIES := libc libstdc++ libstlportLOCAL_LDFLAGS += -L$(prebuilt_stdcxx_PATH)/libs/$(TARGET_CPU_ABI) -lgnustl_static -lsupc++LOCAL_MODULE_TAGS := optionalinclude $(BUILD_SHARED_LIBRARY)

比较重要的是上面 红色 部分文字

最后编译生成:

target thumb C++: libboost <= external/boost_1_49_0/libs/thread/src/pthread/thread.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/thread/src/pthread/once.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/codecvt_error_category.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/operations.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/path.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/path_traits.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/portability.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/utf8_codecvt_facet.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/system/src/error_code.cpp
target SharedLib: libboost (out/target/product/godbox/obj/SHARED_LIBRARIES/libboost_intermediates/LINKED/libboost.so)
target Symbolic: libboost (out/target/product/godbox/symbols/system/lib/libboost.so)
target Strip: libboost (out/target/product/godbox/obj/lib/libboost.so)
Install: out/target/product/godbox/system/lib/libboost.so      


成功生成 libboost.so  库


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 20多岁雌激素低怎么办 生完小孩后子宫下垂怎么办 取环之前同房了怎么办 做人流后又怀孕怎么办 仓鼠长了个肿瘤怎么办 过敏留下的黑印怎么办 脸上痘痘发炎了怎么办 脸上皮肤红痒怎么办啊 皮肤有一片红痒怎么办 脸过敏期间很干怎么办 怀孕了用了消糜栓怎么办 乳酸杆菌少或无怎么办 怀孕了白带有异味怎么办 怀孕清洁度iv度怎么办 怀孕了下面有异味怎么办 孕妇尿白细胞1是怎么办 药流期间喂奶了怎么办 20多岁卵巢早衰怎么办 3岁儿童肚子胀气怎么办 肚子又胀又痛怎么办 1岁宝宝肚子胀气怎么办 2岁宝宝肚子胀气怎么办 产后腰粗肚子大怎么办 发烧后腹泻拉水怎么办 又吐又拉还发烧怎么办 喝中药恶心想吐怎么办 生完孩子肛门疼怎么办 拉完大便肛门痛怎么办 肚子总是凉凉的怎么办 京东金条风控了怎么办 京东维修没发票怎么办 假牙吞到肚子里怎么办 眼睛一只大一只小怎么办 一个眼睛大一个眼睛小怎么办 电脑上的字模糊怎么办 无忧乐行注销了怎么办 连供墨盒有空气怎么办 30岁突然停经了怎么办 下面很痒怎么办白带多 私处有点痒怎么办洗液 人的下体皮肤痒怎么办