2

Android 2.3.6のソースコードをダウンロードして、正常にビルドしました。次に、C ++ライブラリを外部フォルダに追加してビルドしようとしましたが、ビルドすると、次のエラーが発生しました。

prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3/../../../../arm-eabi/bin/ld: path/to/myfile.cpp:26: error: undefined reference to '__cxa_end_cleanup'
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3/../../../../arm-eabi/bin/ld: : error: undefined reference to '__gxx_personality_v0'
in function path/to/myfile.cpp:26: error: undefined reference to 'operator delete(void*)'

この行をAndroid.mkファイルに追加しました:LOCAL_CXX = path / to / g ++ compiler g ++コンパイラを使用しますが、それでも... / arm-eabi / bin /ldを使用して他のライブラリとリンクするにはどうすればよいですか?リンカーとしてg++を強制的に使用します。

4

2 に答える 2

2

C++コードをコンパイルしてリンクする必要がありg++ますgcc

于 2013-03-18T13:57:00.150 に答える
0

と一緒に、同じ種類のエラーがありました'out/xxx/yyy.o: file is empty'。私の場合、その理由は、ビルドプロセス中にVMがクラッシュし、一部のファイルが破損したままになっているためですrepo sync(破損したファイルはバイナリでした)。

問題のあるファイルを含むディレクトリを削除し、ビルドプロセスを再開すると、エラーはなくなりました。

于 2014-11-27T01:10:54.840 に答える