如果 Android NDK 应用程序加载多个共享的 C++ STL 实现,会有什么行为?
What is the behavior if an Android NDK application loads more than one shared C++ STL implementation?
我们有一个带有多个本机库的 Android 应用程序。目前,他们中的大多数使用 stlport_shared
,但我们有兴趣升级到 c++_shared
(LLVM libc++ 运行 时代)。如果我们要升级其中的一些,而不是其他的,我们将不得不同时加载 stlport 和 llvm。
我认为加载 STL 的两个实现可能会导致问题,但实际上该应用程序似乎 运行 正确。这是未定义的行为,还是允许加载多个 STL 实现?
我已经阅读了 https://developer.android.com/ndk/guides/cpp-support.html 和 NDK 附带的一些文档,但似乎无法找到明确的答案。感谢您的帮助!
最好尽可能避免这种情况。
如果一个 STL 类型(例如 std::string
)被 stlport_shared
二进制文件和 c++_static
二进制文件访问,作为 [=10= 的两个实现] 不兼容,这将不起作用。
您也容易受到
描述的问题的影响
我们有一个带有多个本机库的 Android 应用程序。目前,他们中的大多数使用 stlport_shared
,但我们有兴趣升级到 c++_shared
(LLVM libc++ 运行 时代)。如果我们要升级其中的一些,而不是其他的,我们将不得不同时加载 stlport 和 llvm。
我认为加载 STL 的两个实现可能会导致问题,但实际上该应用程序似乎 运行 正确。这是未定义的行为,还是允许加载多个 STL 实现?
我已经阅读了 https://developer.android.com/ndk/guides/cpp-support.html 和 NDK 附带的一些文档,但似乎无法找到明确的答案。感谢您的帮助!
最好尽可能避免这种情况。
如果一个 STL 类型(例如 std::string
)被 stlport_shared
二进制文件和 c++_static
二进制文件访问,作为 [=10= 的两个实现] 不兼容,这将不起作用。
您也容易受到
描述的问题的影响