我们有一个用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。这似乎是一个不足的问题。
答案 0 :(得分:0)
我知道自问这个问题已经有很多年了。
事实证明,谷歌已经在c ++ _ shared库和NDK本身上做了很多工作,导致了这些不兼容性。在以后的NDK中,我们再也没有遇到过如此重要的事情。
TL / DR:是的,它们不兼容。