我可以使用clang解析C代码,即使我必须在我自己的源代码上使用RTTI

Can I use clang for parsing C code even though I must use RTTI on my own source code?

本文关键字:我自己 自己的 源代码 RTTI 解析 clang 代码 我可以 可以使      更新时间:2023-10-16

我正在编写一个c++程序,我需要能够将C代码解析为AST,对其执行一些操作,然后将其转换回字符串表示。在我读过的几乎所有类似的问题中,答案都是"使用clang"。

然而,根据http://amnoid.de/tmp/clangtut/tut.html,在编译使用clang的代码时显然必须提供标志-fno-rtti,但我在自己的代码中使用了虚拟函数和使用dynamic_cast的下转换对象等功能。是否还有一种使用clang的方法,或者我是否需要求助于另一个库?

Clang 本身必须用-fno-rtti编译,但我不相信当你使用Clang编译(或只是从)其他代码构建AST时,对-fno-rtti有任何要求。

要么重新编译启用RTTI的Clang,要么将其构建为共享库(尽管我不完全确定这个库)