我正在编写一个C ++程序,我需要能够将C代码解析为AST,对其执行一些操作,然后将其转换回字符串表示形式。在我读过的几乎所有类似的问题中,答案是“使用铿锵”。
但是,根据http://amnoid.de/tmp/clangtut/tut.html,在编译使用clang的代码时,显然必须提供标记-fno-rtti
,但我正在使用{{1}等虚函数和向下转换对象等功能在我自己的代码中。还有一种使用clang的方法,还是我需要求助于另一个图书馆?
答案 0 :(得分:3)
Clang 本身必须使用-fno-rtti
进行编译,但我不相信当您使用clang编译(或只是构建一个)时,-fno-rtti
没有任何要求AST来自)其他代码。
答案 1 :(得分:0)
要么在启用RTTI的情况下重新编译Clang,要么将其构建为共享库(尽管这个我并不完全确定)。