使用c ++ _ shared stl将库构建与ndk r10链接到使用ndk r13的项目构建

时间:2017-01-17 13:16:26

标签: android stl android-ndk ndk-build

我们有一个用android ndk r10e构建的预建库。我们正在开发的项目正在使用ndk r13b进行构建。当尝试链接库时,我们的构建失败,并且包含ndk stl提供的类(如字符串)的库的所有函数都有未定义的引用错误。错误:

Foo.cpp:39: undefined reference to `namespaceFoo::Bar::fooBar(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)'

我们通过使用ndk 13构建它来修复此问题与另一个库。不幸的是,对于其中一个必要的库,它是我们无法控制的。

我们将c ++ _ shared lib链接为stl。

有没有办法让这项工作?我们能以某种方式正确地将库构建与ndk r10链接吗?

编辑:明确我们使用c ++ _ shared stl。这似乎是一个不足的问题。

1 个答案:

答案 0 :(得分:0)

我知道自问这个问题已经有很多年了。

事实证明,谷歌已经在c ++ _ shared库和NDK本身上做了很多工作,导致了这些不兼容性。在以后的NDK中,我们再也没有遇到过如此重要的事情。

TL / DR:是的,它们不兼容。