неопределенная ссылка на `__dynamic_cast 'с использованием libc ++ в Ubuntu

Я пытаюсь скомпилировать тестовый пример, который используетdynamic_cast используя libc ++, который был скомпилирован в соответствии с«Сборка под Linux с использованием CMake и libsupc ++».

#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'? Как это решить?

РЕДАКТИРОВАТЬ

Похоже, это как-то связано с libc ++ abiтак как я вижу__dynamic_cast прототип в спецификации, Я ожидалlibsupc++ первый вариант сборки, чтобы работать без таких проблем ... и пытается скомпилировать libc ++ abi на Linuxэто другая проблема сама.

Это похоже наКомпиляция с Clang с использованием неопределенных ссылок на Libc ++.

Если это действительно проблема, существует ли простой процесс использования libc ++ в Linux, который может скомпилировать этот короткий фрагмент, или он просто еще не поддерживается?

Ответы на вопрос(1)

Ваш ответ на вопрос