编译boost for android经历

主要借用这篇博客的方法http://blog.csdn.net/lovesh5/article/details/11694941

我第一次编译的编译平台是MACOSX.

1.boost库1.49(这个是之前别人编过一次的boost库,好几个G,忘了在什么平台上编的了,应该是MACOSX. )

2.ndk版本:android-ndk-r8b


编出来好多错误,生成的库缺几个,比如filesystem,thread。

先检查原因,原因先是我手动改了androidPlatform但是改错了。改好后,还有错,因为文中提到用的是r9的库,我下了个r9b的换了下,错误减少了不少,但是还有。

最后提示error: fatal error: sys/statvfs.h: No such file or directory,这时候需要到的库只剩下filesystem这个库没有了

按一篇文中提到的方法改了boost的一个文件就好了:

Android doesn't have sys/statvfs.h. instead sys/vfs.h should be used.

possible fix (libs/filesystem/src/operations.cpp):

#   if !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__ANDROID__)
#     include <sys/statvfs.h>
#     define BOOST_STATVFS statvfs
#     define BOOST_STATVFS_F_FRSIZE vfs.f_frsize
#   else
#     ifdef __ANDROID__
#     include <sys/vfs.h>
#     endif
#     ifdef __OpenBSD__
#     include <sys/param.h>
#     endif
#     include <sys/mount.h>
#     define BOOST_STATVFS statfs
#     define BOOST_STATVFS_F_FRSIZE static_cast<boost::uintmax_t>(vfs.f_bsize)
#   endif




注:

1.期间走了不少弯路,主要是因为按提示的错误查资料,查到的都解决不了问题。严格按照上文的环境,之前提示的错误很多会消失掉。只有filesystem需要改些东西。

2.另外附上我的第三部的命令./b2 toolset=gcc-android4.6 link=static threading=multi runtime-link=static target-os=linux --stagedir=android

3.现在还有个暂时不需要的库:atomic库没有编出来,求指导。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值