永发信息网

在Windows平台下怎么编译boost 1.57 for android

答案:1  悬赏:0  手机版
解决时间 2021-03-09 14:33
在Windows平台下怎么编译boost 1.57 for android
最佳答案
这里是使用NDK进行编译boost的但肯定对我有用吧。。经过一番折腾终于编译成功,,高兴,呵呵! 转载

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

  1、下载boost 源码:

  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、下载补丁代码

  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:= libboost
  LOCAL_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)/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 := optional
  include $(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 库
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在家里自制淡盐水 的比例是多少啊 ?
嘉峪关动车站到火车站有公交车吗?
下列关于植物蒸腾作用的叙述中,不正确的是:
在图片编辑器里怎么把图片由大改成小呀
电脑开机一段时间后变成蓝屏,然后又重新启动
砀山县精神病医院在什么地方啊,我要过去处理
NBA 01-06 爵士vs火箭 谁会胜出?
【你想要的我却不能够给你我全部】...你是最
邵老二轰炸大鱿鱼怎么去啊,有知道地址的么
办理驾驶员从业资格证在异地可以办理吗?
毕业之际,你想对同学说什么诗句注意是诗句
我的老婆是学生会长修改版和没修改的有区别么
元曲用英语怎么说
我工资四千四,房贷两千一。还能贷款买车吗?
高中自动退学后档案是否会消除?就是会不会影
推荐资讯
她说要买一个带心形锁的手链把自己锁上
那里有在合肥做模特的工作??
二维码形式的增值税普通发票二维码4个
【冉阿让】对冉阿让心理活动描写的赏析有误的
西门子plc编程怎么把计数器的每个数值放到每
马埠头道班地址在哪,我要去那里办事
败犬女王为何要禁播?又没有激情戏
雷雨过后为什么会出现彩虹
刀剑干7怎么做啊!
江西万年称老婆是什么
怎样用万能表测电容
新版本地下城怎么换副职业啊,我是附魔想换分
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?