2012-11-01 40 views
2

我需要能够将非RTTI代码中的类派生到RTTI代码项目中。我使用LLVM,在其代码中禁用RTTI。我知道我不能在他们的代码上做typeinfo和dynamic_cast,那很好,但是看起来派生也是行不通的。不知怎的,GCC认为它需要基类的typeinfo,尽管它不存在。我得到的错误:在RTTI代码中使用非RTTI接口

undefined reference to `typeinfo for llvm::AssemblyAnnotationWriter' 

我怎样才能在一个RTTI项目中使用的基类,从一个没有RTTI库? 我假设RTTI是问题,因为我不能想到它会是什么。

+0

这可能与nortrt和rtti之间的差异有关,只是针对例外。 – Pubby

+0

LLVM还禁用异常,并且此类不用于任何throw/catch语句。 –

回答

2

你不能。在这种情况下,您必须使用RTTI重新编译LLVM。

+0

是的,我用RTTI进行重新编译。很容易,不值得研究另一种解决方案。 –