android - 使用不同于 Application.mk 中定义的 STL 编译 android-ndk 模块

标签 android c++ stl android-ndk

我正在编写一个依赖于 APP_STL := c++_static

的 android-ndk 程序

但是,构建静态库的特定模块不会编译,除非使用 gnuSTL_static 代替。

即使我手动添加了必要的路径,例如:

-isystem $(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$(NDK_TOOLCHAIN_VERSION)/include

编译失败,因为 ndk-build 系统预先添加了它被要求使用的 STL 库路径,在我的例子中:

-I/opt/android-ndk-r9d/sources/cxx-stl/llvm-libc++/libcxx/include

有没有办法告诉 ndk-build 使用不同的 STL 构建静态库?或者这根本不可能,因为将程序与 STL 的多个实现链接起来没有意义?

最佳答案

NDK 文档声明您不能混合针对不同 C++ 运行时编译的共享库。对于静态库也是如此,您也不应链接到多个 C++ 运行时。

您必须调整您的项目以仅支持其中一个 C++ 运行时(在您的情况下,c++_static 或 gnuSTL_static)。

关于android - 使用不同于 Application.mk 中定义的 STL 编译 android-ndk 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28792532/

相关文章:

android - 处理 Widget ListView 中的项目点击 [Android]

java - Android JSONReader 未找到类

java - 使用带有 Intent 服务的 ion 进行 http 调用会在数据网络上出现错误

c++ - 用来自另一个容器的迭代器填充一个容器

c++ - 为什么 push_back 签名是 void push_back (const value_type& val) 而不是 void push_back (value_type val)?

java - 如何在 Android Studio 中链接一个库项目

c++ - 尝试分配输出以查看指针和引用输出时,未命名类型错误

c++ - 什么是 __printf_fp() 以及何时调用它?

c++ - 是否所有 C++ STL 都会产生相同的随机数(对于相同的种子)?

c++ - std::deque.push_back(x) - 它到底做了什么?