0

我正在编写一个基于 LibTooling 和 RecursiveASTVistor 的独立工具,我不想查看存储在源代码中的头文件的内容。我需要更改编译数据库吗?我一直在使用这个小技巧来防止我的工具崩溃,但我不希望我的工具分析我正在处理的源代码中包含的任何头文件。

bool VisitDecl(Decl *D) {

    FullSourceLoc FullLocation = Context->getFullLoc(D->getLocStart());
    const auto &SourceManager = Context->getSourceManager();

    if (FullLocation.isValid() && !SourceManager.isInSystemHeader(FullLocation) && Context->getSourceManager().isInMainFile(D->getLocation()))
}
4

1 回答 1

1

您正在做的是跳过系统头文件的方式。但是,如果您想跳过所有包含的标头,那么您可以指定包含目录,--isystem=<custom include dirs>而不仅仅是简单的-I <custom include dirs>命令行选项。通过该更改,所有自定义包含标头都将被视为系统标头并被跳过。

于 2017-02-27T07:02:46.280 回答