首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android的Port Boost

Android的Port Boost
EN

Stack Overflow用户
提问于 2011-02-03 13:09:04
回答 3查看 13.9K关注 0票数 14

是否有人在Android上移植并使用了Boost?

我已经找到了为安卓构建boost的工具(https://github.com/MysticTreeGames/Boost-for-Android),构建成功了,而且我已经有了静态的boost库。但当我尝试在简单的android应用程序中使用它时:

代码语言:javascript
复制
#include <jni.h>
#include "boost/thread.hpp"

void f()
{
};

我有很多编译错误:重定义,未声明等。看起来它与NDK std头有关。我的Android.mk看起来像这样:

代码语言:javascript
复制
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

TARGET_PLATFORM := android-8

LOCAL_MODULE := Boost

LOCAL_CFLAGS := -DMYSTIC -I$(LOCAL_PATH)/boost/include/ 
LOCAL_LDLIBS := -L$(LOCAL_PATH)/external/boost/lib/

LOCAL_CPPFLAGS  := -fexceptions
LOCAL_CPPFLAGS  += -frtti
LOCAL_CPPFLAGS  += -DBOOST_THREAD_LINUX
LOCAL_CPPFLAGS  += -DBOOST_HAS_PTHREADS
LOCAL_CPPFLAGS  += -D__arm__
LOCAL_CPPFLAGS  += -D_REENTRANT
LOCAL_CPPFLAGS  += -D_GLIBCXX__PTHREADS
LOCAL_CPPFLAGS  += -DBOOST_HAS_GETTIMEOFDAY

LOCAL_SRC_FILES := main.cpp

include $(BUILD_SHARED_LIBRARY)

我也尝试过用Crystax_NDK_r4和Android_NDK_r5b来构建,但是没有解决这个问题。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-03 16:49:57

我已经解决了问题。我指定的NDK路径不正确。脚本补丁CrystaX NDK也是。所以现在它起作用了!

票数 6
EN

Stack Overflow用户

发布于 2013-07-08 22:30:30

我刚刚找到了一种在android NDK下构建boost的简单方法,它不需要修补boost。

我不使用Android.mk来构建boost,相反,我使用独立的工具链来构建,只是链接CodeSourcery的工具链。

  1. 首先准备NDK工具链:

将NDK工具链作为独立工具链安装。请参阅$NDK/docs/STANDALONE-TOOLCHAIN.html

将交叉工具链的bin路径添加到您的PATH

  • Build boost.Build工具中,在Boost prj中:

./bootstrap.sh

  • echo“使用gcc : android : arm-linux-androideabi-g++ ;”> $HOME/user-config.jam

  • Build示例

./b2 --prefix=$HOME/mybuild --with-thread --with-system toolset=gcc--android threading=multi link=static安装

希望这些能对你有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2012-01-14 00:51:40

你可以在这里下载一个脚本集合,这些脚本将会下载和构建一些流行的android和ios的c/c++开源库,包括boost。

https://github.com/mevansam/cmoss

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4882714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档