我试图编译使用测试用例dynamic_cast
使用的libc ++,这是根据编制“使用CMake和libsupc ++在Linux上构建” 。
#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上是另一个问题本身 。
这似乎与使用libc库锵++未定义的引用编译 。
如果这确实是问题,是有办法使用Linux上的libc ++可以编译一小段一个简单的过程,或者它只是尚不支持?