当使用 clang(libclang) 和特别的函数 clang_parseTranslationUnit 和 clang_reparseTranslationUnit 时,我有一个关于解析性能的问题。
我正在尝试优化流程,但我真的已经没有想法了。情况如下 - 我有一个 .cpp 源,其中包含很多头文件。这个标题很少改变。但是 .cpp 源发生了很大变化,我需要经常重新解析它。因此,有可能“预解析/预编译”所有头文件并创建 .pch 文件,然后在解析 .cpp 时使用它。但是,问题是,我只能使用一个 .pch。所以,我需要从所有包含的头文件中创建一个 .pch 。但是,稍后,当我包含其他一些头文件时,我需要重新解析所有头文件,即使它们根本没有改变。此外,这是一个问题,我需要明确知道 .cpp 中包含哪些标头(这不是很方便,因为这意味着我必须至少扫描包含我自己,然后创建一个 .cpp 文件。
是否有任何其他选项可以优化流程?我希望,当我使用 clang_parseTranslationUnit 和后来的 clang_reparseTranslationUnit 时,解析实际上会以这种方式进行优化(至少所有没有更改的标题,不需要再次重新解析)。但是,它不是那样工作的。