[英]undefined reference to `__dynamic_cast' using libc++ on ubuntu
我正在嘗試使用libc ++編譯使用dynamic_cast
的測試用例,該用例是根據“使用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++
第一個構建選項可以正常工作,而不會出現此類問題……而嘗試在linux上編譯libc ++ abi 本身就是另一個問題 。
這似乎與使用Libc ++未定義引用進行Clang編譯有關。
如果確實是問題所在,是否有直接的方法可以在Linux上使用libc ++來編譯該簡短代碼段,還是尚不支持?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.