我发现 GCCXML 不再被维护(我认为最后一个版本是 2009 年的,来自他们的 CVS 存储库)。人们通常建议查看 clang,但我找不到描述如何生成类似输出的综合文档。不一定是 XML,而是可解析(记录的,如果是二进制的或模糊的)格式的相同信息。如果有办法从最新的 gcc 版本中获取相同的信息,那也很好。
这是一个动态调用 C++ 代码的爱好项目。我知道类似的项目(pygccxml、xrtti、openc++),但重点是为了好玩而制作它。
最佳答案
曾经有一种使用 Clang 打印 xml 转储的方法,但它或多或少受到支持并已被删除。开发人员可以选择在各个阶段获取转储,但格式是供人类使用的,并且不稳定。
对 Clang 用户的建议始终是代码集成:
- 直接使用 C++ 中的 Clang,例如使用
RecursiveASTVisitor
实现 - 或者使用 C 或 C++ 中的
libclang
。
与 gcc 不同,clang 被认为是一组可重用的库,因此尝试为某些 clang 输出编写解析器没有多大意义:它只是产生更多错误- 比仅仅从源头消费信息更容易。
关于c++ - 如何使用 clang 生成类似于 gcc-xml 的元数据输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9463540/