编译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 
#     define BOOST_STATVFS statvfs
#     define BOOST_STATVFS_F_FRSIZE vfs.f_frsize
#   else
#     ifdef __ANDROID__
#     include 
#     endif
#     ifdef __OpenBSD__
#     include 
#     endif
#     include 
#     define BOOST_STATVFS statfs
#     define BOOST_STATVFS_F_FRSIZE static_cast(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库没有编出来,求指导。。。

你可能感兴趣的:(编译boost for android经历)