我为 Android 开发了一些本机库并使用 Boost 库——只是基于标头的库。我面临的问题是,当我尝试将我的一些本机库链接到某个系统库时,UnsatisfiedLinkError
会抛出异常。这是由于 NDK 文档中所述的不同 C++ 运行时:
您只能选择所有代码都依赖的单个 C++ 运行时。不能混合针对不同 C++ 运行时编译的共享库。
系统库不使用 RTTI 和异常,但我的库隐式使用它。我知道有宏BOOST_EXCEPTION_DISABLE
和BOOST_NO_RTTI
,但我无法使其工作。我尝试将它们设置为编译器标志和 config.hpp,但没有运气 - 仍然遇到很多错误,例如
cannot use typeid with -fno-rtti
如何在 Boost 中禁用这些功能,甚至可能吗?