0

我的 C++ 工具链中有一个预构建事件工具(用 Ruby 编写),它可以从现有的 C++ 源代码生成额外的 C++ 代码。我想用更快的生成器替换这个工具,使用 clang 将是最好的选择。

有没有办法编写一个解析文件的 C++ 源代码的 C++ 应用程序,所以我可以在 Clang 中实现这个预构建工具?我正在寻找如何开始的关键字或页面。非常感谢任何帮助!

4

1 回答 1

2

解析 C++ 并不是一件简单的事情。编译时的诡计和隐含的语义使它变得异常困难。因此,我建议使用 Clang。它的开发人员使得将 Clang 用作库成为可能。查看本指南以了解 Clang 具有的不同接口。如果您想要真正的 C++ 体验,您可能需要选择LibTooling

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

我希望这些信息对你有用!

于 2019-11-23T10:12:24.227 回答