mac 上 android boost 库的编译及使用

mac 上 android boost 库的编译及使用

环境

系统:mac osx v10.13.4 (17E199)
ndk:android-ndk-r16b
boost版本:v1.66.0

一,编译

使用编译脚进行编译,地址如下:https://github.com/moritz-wundke/Boost-for-Android.git

$ git clone https://github.com/moritz-wundke/Boost-for-Android.git
$ cd Boost-for-Android
$ ./build-android.sh ndk_dir --with-libraries=date_time,system,random --arch=arm64-v8a,armeabi-v7a

ndk_dir 是你自己的ndk目录
–with-libraries 指定你需要的boost的库,根据自己的需要添加;
–arch 指定你需要的指令集,根据自己的需要添加;
执行上面的shell命令结果如下:
这里写图片描述
下载boost库报错,需要根据地址手动下载boost库,然后放到Boost-for-Android目录下,在执行上面的shell命令;
之后,编译完成;

二,使用

android studio 支持cmake交叉编译,在CMakeLists.txt中添加如下代码:

//如果使用了libboost_system.a库,需要添加如下预处理宏定义,不然会报错,错误如下:
//Error:(221) undefined reference to `boost::system::generic_category()'
add_definitions("-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_NO_LIB -DBOOST_DATE_TIME_NO_LIB -DBOOST_REGEX_NO_LIB")

add_library( # Sets the name of the library.
             test

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             )
#add boost_date_time lib
set(libboost_date_time ${PROJECT_SOURCE_DIR}/../3rdparty/boost/prefix/${abi}/libboost_date_time.a)
add_library(libboost_date_time-lib STATIC IMPORTED)
set_target_properties(libboost_date_time-lib PROPERTIES IMPORTED_LOCATION  ${libboost_date_time})

# add libboost_random lib
set(libboost_random ${PROJECT_SOURCE_DIR}/../3rdparty/boost/prefix/${abi}/libboost_random.a)
add_library(libboost_random-lib STATIC IMPORTED)
set_target_properties(libboost_random-lib PROPERTIES IMPORTED_LOCATION  ${libboost_random})

# add libboost_system lib
set(libboost_system ${PROJECT_SOURCE_DIR}/../3rdparty/boost/prefix/${abi}/libboost_system.a)
add_library(libboost_system-lib STATIC IMPORTED)
set_target_properties(libboost_system-lib PROPERTIES IMPORTED_LOCATION  ${libboost_system})

target_link_libraries( # Specifies the target library.
                      test

                      libboost_date_time-lib
                      libboost_random-lib
                      libboost_system-lib )

demo地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值