使用clang-c索引文件不会触及我的ppIncludedFile回调

时间:2012-05-12 21:21:53

标签: compiler-construction clang

我正在使用下面的Objective-C类来索引Objective-C文件。我尝试使用{-1}}和#include解析同时包含尖括号和引号头文件的文件。在任何情况下我的#import回调都不会被击中。 Clang显然包含了文件,因为我得到了它们中定义的符号的索引回调。但是关于整体结构,我得到ppIncludedFile,然后我得到enteredMainFile主文件。但是我从来没有找到它正在查找的头文件。

根据文件:

  

/ ** * \ brief当文件被#include / #import时调用。 * /
  CXIdxClientFile(* ppIncludedFile)(CXClientData client_data,                                       const CXIdxIncludedFileInfo *);

这不会发生。这是一个错误,还是我需要做一些事情才能启用此回调?我正在使用的startedTranslationUnit版本来自svn trunk r156259。

libclang

1 个答案:

答案 0 :(得分:3)

#include时间的处理可能无法记录,因为那里有大量信息(在一般情况下可能不需要)。有一个createPreporcessingRecord函数,如果尚未启用该选项,则不会生成数据。

Clang文档描述了CXTranslationUnit_DetailedPreprocessingRecord,您可以将其用作标记,而不是可能有帮助的CXTranslationUnit_None