我为Android开发了一些本地库,并使用Boost库 - 只是基于标头的库。我面临的问题是,当我尝试将一些本机库链接到某个系统库时,引发了UnsatisfiedLinkError
。这是由于随着NDK文档中所述不同的C++运行时:是否可以在Boost库中禁用异常和RTTI?
只能选择一个C++运行时,所有你的代码将 依赖。不可能混合使用针对不同C++运行时编译的共享库。
系统库不使用RTTI和异常,但我的库隐式使用它。 我知道有宏BOOST_EXCEPTION_DISABLE
和BOOST_NO_RTTI
,但我无法使其工作。我试图将它们设置为编译器标志和在config.hpp为好,但没有运气 - 仍然得到许多错误,如
cannot use typeid with -fno-rtti
我怎样才能加速禁用这些功能,是它甚至可能吗?
尝试编译Boost时你遇到了那个错误吗?或者当试图编译自己的代码? –
当试图编译我自己的代码。 – vitakot
顺便说一下,你的问题没有意义;我写了我只使用标题...,主要是circular_buffer.hpp,signal.hpp和shared_ptr.hpp – vitakot