0

「Build on Linux using CMake and libsupc++」dynamic_castに従ってコンパイルされた libc++ を使用するテスト ケースをコンパイルしようとしています。

#include <iostream>

struct A
{
    virtual void f(){ std::cout << "Virtual A" << std::endl; }
    virtual ~A(){}
};

struct B : public A
{
    void f() { std::cout << "Virtual B" << std::endl; }
    virtual ~B(){}
};

int main()
{
    A *a = new B;
    B *b = dynamic_cast<B *>(a);
    delete a;
}

私はubuntu 13.04でコンパイルしていclang++ -std=c++11 -stdlib=libc++ます。

なぜ私は得ているのundefined reference to '__dynamic_cast'ですか?それを解決する方法は?

編集

仕様にプロトタイプが表示されているので__dynamic_cast、libc++abi と関係があるようです。私はlibsupc++最初のビルドオプションがそのような問題なしに動作することを期待していました...そしてLinuxでlibc++abiをコンパイルしようとすること自体が別の問題です.

これはCompiling with Clang using Libc++ undefined referencesに関連しているようです。

これが実際に問題である場合、その短いスニペットをコンパイルできる Linux で libc++ を使用する簡単なプロセスはありますか、それともまだサポートされていないだけですか?

4

1 に答える 1