Tag: stlport

如何在Android NDK和STLport中使用boost库(包括shared_ptr)

这不仅仅是一个答案,而是一个问题,因为我已经弄明白了,至less就整个库的编译而言。 主要的问题是让shared_ptr工作。 配料: Boost v。1.45.0 STLport的版本在http://www.anddev.org/viewtopic.php?p=29939 。 NDK的版本r4b。 路线: 在你的Android.mk文件中添加: LOCAL_CFLAGS += -DBOOST_EXCEPTION_DISABLE -D_STLP_NO_EXCEPTIONS -DOS_ANDROID -D_STLP_USE_SIMPLE_NODE_ALLOC 在stlport / stl / _string.h的第613行删除对__stl_throw_length_error的调用。 如果你喜欢,你可以使用_STLP_NO_EXCEPTIONS。 在第261行后面编辑boost / boost / smart_ptr / shared_ptr.hpp,以免在shared_ptr构造函数中调用boost :: throw_exception。 我在方法的整个主体周围使用了#ifndef BOOST_EXCEPTION_DISABLE。 (但请参阅下面的答案。) 接下来,你需要提供一些缺失的部分。 使用以下命令创build一个头文件: #ifdef OS_ANDROID #include <exception> namespace std { struct bad_alloc : public exception { bad_alloc operator()(){}}; } #endif 和一个带有精简exception类的源文件来支持bad_alloc: #ifdef […]