如何在预构建事件中解析C ++代码?

我的C ++工具链中有一个预构建事件工具(用Ruby编写),该工具可以从现有C ++源代码生成其他C ++代码。我想用更快的生成器替换此工具,最好使用clang。

是否可以编写一种分析文件的C ++源代码的C ++应用程序,以便可以在Clang中实现此预构建工具?我正在寻找如何开始的关键字或页面。非常感谢您的帮助!

charoto 回答:如何在预构建事件中解析C ++代码?

解析C ++不是一件容易的事。编译时的欺骗和隐式语义使其变得异常困难。因此,我建议使用Clang。它的开发人员使得使用Clang作为库成为可能。看看这个guide可以看到Clang的不同接口。如果您想获得真正的C ++经验,则可能需要选择LibTooling

我想警告您,为了使任何C / C ++解析器按预期工作,它们绝对需要实际编译器使用的编译选项。如果没有包含目录或宏定义,则代码几乎没有意义。基本上,您的构建系统应该告诉您的自定义工具如何编译每个文件。最简单的方法是使用compilation database。它是许多基于Clang的工具的首选解决方案。但是,看起来您正在将它作为构建系统的一部分,因此也许合并您的工具并直接使用构建系统中的选项可能不会给您带来负担。

我希望这些信息对您有所帮助!

本文链接:https://www.f2er.com/3046826.html

大家都在问