使用gnustl分发NDK库?

yan*_*ano 6 linker android stl software-distribution android-ndk

我正在为Android开发一个既有Java又有Native组件的库.Native库依赖于GNU STL.我正在反对gnustl_static,但遇到了一些通过链接解决的奇怪问题gnustl_shared.(例如,文件系统和语言环境的问题).目前,我已经确定了gnustl_shared.

这就是问题所在 - 我的库的消费者希望链接到Native .so以添加他们自己的代码.我从阅读中了解到所有的C运行时必须匹配.

  1. 要求我的客户使用gnustl_shared似乎可能不起作用(就外交和易于集成而言)
  2. 如果我使用gnustl_shared,生成的JAR文件包含libgnustl_shared.so,这会导致构建APK的问题也依赖于此库. - 我想我可以不把它包含在JAR文件中?
  3. 如果我反对gnustl_static,我会避免所有这些问题吗?
  4. 如果我的API包含对STL对象的引用(主要是std::stringstd::vector),如果我的客户不使用GNU STL,我会遇到问题吗?

谢谢