【问题标题】:Compiling android-ndk module with different STL than defined in Application.mk使用不同于 Application.mk 中定义的 STL 编译 android-ndk 模块
【发布时间】:2015-03-01 10:33:47
【问题描述】:

我正在写一个依赖APP_STL := c++_static的android-ndk程序

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

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

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

编译失败,因为 ndk-build 系统预先设置了它被要求使用的 stl-library 路径,在我的例子中:

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

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

【问题讨论】:

    标签: android c++ stl android-ndk


    【解决方案1】:

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

    您必须调整您的项目以仅支持这些 C++ 运行时之一(在您的情况下,c++_static 或 gnustl_static)。

    【讨论】:

    • 同意。这就是我最终所做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多