我正在尝试使用android中的NDK构建C++代码。我有一个参数为vector < vector <float> > coordinates的方法

一切正常,直到我在方法中编写此行
vector<float> firstPoint = coordinates.at(0);
我开始出现这个错误

D:/eclipseworkspace/myLibProject/obj/local/armeabi/libmyLibProject.a(FileName.o): In function `std::priv::_Vector_base<std::vector<float, std::allocator<float> >, std::allocator<std::vector<float, std::allocator<float> > > >::_M_throw_out_of_range() const':
D:/androidndk/sources/cxx-stl/stlport/stlport/stl/_vector.c:45: undefined reference to `std::__stl_throw_out_of_range(char const*)'
collect2: ld returned 1 exit status
make: *** [/cygdrive/d/eclipseworkspace/myLibProject/obj/local/armeabi/libOutputName.so] Error 1

我不知道为什么会这样,而Google也没有帮助。

谢谢。

最佳答案

我认为您在同一项目中使用标准库的两种不同实现。

似乎您正在使用D:/android ...中标准库的STLport实现(的 header )编译文件,并且链接到本地​​库。

您必须在ide(或Makefile)中配置链接器,以也使用相同实现的lib文件(在D:/android ...的某个地方)。

09-30 16:53
查看更多