What this error means and how to solve it?

妖精的绣舞 提交于 2019-12-23 20:00:15

问题


I am trying to build a C++ code using NDK in android. I have a method which has a parameter vector < vector <float> > coordinates

Everything builds fine until I write this line inside my method

vector<float> firstPoint = coordinates.at(0);

I start getting this error

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

I have no clue why this is happening and Google is not helping either.

Thanks.


回答1:


I think you are using two different implementation of the standard library in the same project.

It looks like you are compiling your files with (the headers of) an stlport implementation of the standard library in D:/android..., and you link against your local library.

You have to configure the linker in your ide (or Makefile) to use also the lib file of the same implementation (somewhere in D:/android... I guess).




回答2:


This is a linking error. You need to add APP_STL := stlport_static to your Apllication.mk file. Also make sure that you use -fno-exceptions flag, since STLport is not compatible with C++ exceptions and RTTI.

You can get more info in APPLICATION-MK.HTML which is availavle in the docs folder of the NDK. CPLUSPLUS-SUPPORT.HTML is also worth to read.




回答3:


this looks like a linker error. You probably forgot to add STL library reference to your build. Or it can't be found




回答4:


Did you do this ?

#include <stdexcept>
#include <vector>
using namespace std;



回答5:


When I changed

vector<float> firstPoint = coordinates.at(0);

to

vector<float> firstPoint = coordinates[0];

it started compiling..... :s y?



来源:https://stackoverflow.com/questions/7185831/what-this-error-means-and-how-to-solve-it

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!