30

最初のカップルは長すぎて参照できません。clang++ -stdlib=libc++ ../main.cc ...SVN から clang と libc++ でコンパイルしようとすると、このエラーが発生します。

error: undefined reference to 'typeinfo for char const*'
error: undefined reference to '__cxa_allocate_exception'
error: undefined reference to '__cxa_throw'
/tmp/cc-pbn00y.o:../main.cc:function std::__1::deque<double, std::__1::allocator<double> >::__add_back_capacity(): error: undefined reference to '__cxa_begin_catch'
/tmp/cc-pbn00y.o:../main.cc:function std::__1::deque<double, std::__1::allocator<double> >::__add_back_capacity(): error: undefined reference to '__cxa_rethrow'
/tmp/cc-pbn00y.o:../main.cc:function std::__1::deque<double, std::__1::allocator<double> >::__add_back_capacity(): error: undefined reference to '__cxa_end_catch'
/tmp/cc-pbn00y.o(.eh_frame+0xbd3): error: undefined reference to '__gxx_personality_v0'

解決策:答えの1つのおかげで、私は解決策を知っています。libc++は、 libstdc++ のように単独で使用することはできません。 libc++abiと一緒にリンクする必要があります。ただし、libc++abi はまだ完成していないので、libc++ を使用するのは今のところ少し不完全なようですが、完成したときはまだ最初の選択肢です。

2012 年 5 月 26 日更新: C++ 用の libc++abi が完成し、次のように clang++ を正常に使用していますclang++ -std=c++11 -stdlib=libc++ -lc++abi

4

4 に答える 4

16

libc++ はまだすべての例外関数をサポートしていないと思います。ステータス ページを参照してください。

http://libcxxabi.llvm.org/spec.html

おそらくgnuのlibstdc ++にリンクできます

于 2011-08-10T19:57:21.753 に答える
3

これは例外処理を使用しているようですが、コンパイラで有効になっていません。コマンドラインに-fexceptionsを渡してみてください。

于 2011-08-10T19:44:42.453 に答える