2015-08-21 26 views
4

我們有一個Android應用程序與幾個本地庫。目前,其中大多數使用stlport_shared,但我們有興趣升級到c++_shared(LLVM libC++運行時)。如果我們升級其中的一些,而不是其他的,我們將不得不加載stlport和llvm。如果Android NDK應用程序加載多個共享C++ STL實現,那麼行爲是什麼?

我想到加載STL的兩個實現可能會導致問題,但實際上應用程序似乎運行正常。這是未定義的行爲,還是允許加載多個STL實現?

我讀過https://developer.android.com/ndk/guides/cpp-support.html和NDK提供的一些文檔,但似乎無法找到明確的答案。感謝您的幫助!

回答

0

如果可能,最好避免這種情況。

如果STL型(如std::string,例如)由兩者stlport_shared二進制和c++_static二進制,訪問作爲std::string兩種實現是不兼容的,這將無法工作。

您也很容易受到https://stackoverflow.com/a/25856207/632035

相關問題