3

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も助けていません。

ありがとう。

4

5 に答える 5

1

これはリンクエラーです。APP_STL := stlport_staticファイルに追加する必要がありApllication.mkます。-fno-exceptionsまた、STLportはC ++例外およびRTTIと互換性がないため、必ずフラグを使用してください。

NDKのフォルダにあるAPPLICATION-MK.HTMLavailavleの詳細情報を入手できます。読む価値もあります。docsCPLUSPLUS-SUPPORT.HTML

于 2011-08-25T06:25:46.720 に答える
1

同じプロジェクトで標準ライブラリの2つの異なる実装を使用していると思います。

D:/ android ...の標準ライブラリのstlport実装(のヘッダー)を使用してファイルをコンパイルしていて、ローカルライブラリにリンクしているようです。

同じ実装のlibファイル(D:/ android ...のどこか)も使用するように、ide(またはMakefile)でリンカーを構成する必要があります。

于 2011-08-25T06:26:46.457 に答える
0

これはリンカーエラーのように見えます。ビルドにSTLライブラリ参照を追加するのを忘れた可能性があります。またはそれが見つかりません

于 2011-08-25T06:18:47.213 に答える
0

これやった ?

#include <stdexcept>
#include <vector>
using namespace std;
于 2011-08-25T06:19:03.627 に答える
0

着替えたら

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

vector<float> firstPoint = coordinates[0];

コンパイルを開始しました.....:sy?

于 2011-08-25T07:09:46.273 に答える