我正在编写一个依赖于 APP_STL := c++_static
但是,构建静态库的特定模块不会编译,除非使用 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/