如何使用Clang获取C/C++程序的所有全局声明的列表?

sam*_*mvv 6 c c++ llvm clang

我正在尝试编写一个程序,通过使用Clang列出所有公开导出的C或C++程序的变量和函数.

我遵循了本教程的第05部分,但它不适用于当前版本的clang.上面说的,我得到了一些提示CompilerInstance可以使代码更短,但我不完全知道如何使用它.

你会如何实现这个功能?你能指点我正确的方向吗?例如:是否存在全局声明的变量的大型哈希表,或者我是否必须遍历AST?

sam*_*mvv 0

我已经找到办法了。结果是AutoFFI,一个构建在 Clang 之上的 FFI 绑定生成器。如果有时间,我会发布有关如何完成此操作的详细信息。