clang(libclang)表现的解析/重新翻译单位

时间:2011-11-10 08:30:09

标签: parsing optimization clang pch

在使用clang(libclang)和特定函数clang_parseTranslationUnit和clang_reparseTranslationUnit时,我有一个关于解析性能的问题。

我正在尝试优化这个过程,但我真的已经没有想法了。 情况如下 - 我有一个.cpp源代码,其中包含很多头文件。这个标题很少变化。然而.cpp源代码变化很大,我需要经常重新解析它。 因此,有可能“预编译/预编译”所有标头并创建.pch文件,然后在解析.cpp时使用它。 但问题是,我只能使用一个.pch。 所以,我需要从所有包含的头文件中创建一个.pch。 但是,稍后,当我包含一些其他头文件时,我需要重新解析所有头文件,即使它们根本没有更改。 此外,这是问题,我需要明确知道,.cpp中包含哪些标头(这不是很方便,因为这意味着,我必须扫描至少包括我自己,然后创建一个.pch然后解析.cpp源时使用它。)

还有其他方法可以优化流程吗?我希望,当我使用clang_parseTranslationUnit和后来的clang_reparseTranslationUnit时,实际上将以这种方式优化解析(至少所有未更改的头,不需要再次重新解析)。但是,它并不像那样。

0 个答案:

没有答案