libclang:如何获取编译器宏定义

问题描述

使用clang LibTooling API可以仅使用clang::Preprocessor::getPredefines()来获得编译器预定义的列表,但是我找不到libclang API中的任何等效项。可以使用libclang API获得编译器预定义的列表吗?

解决方法

我可以列出所有预定义,因为它们存在于翻译单元的开头。因此,在解析之后,我只列出了CursorKind.MACRO_DEFINITION的所有不在任何实际位置的顶级游标(使用Python绑定API的cursor.location.file is None