Я использую Clang C API для разбора и получения диагностики. Я заметил, что все время использую один и тот же набор заголовков, поэтому решил попробовать использовать PCH или PTH для повышения производительности.
Но я получаю диагностику, что ни PCH, ни PTH не использовались во время clang_parseTranslationUnit
:
- аргумент не используется во время компиляции: '-emit-pth'
- /tmp/system/include/libcxx/iostream.pth: ввод «линкер» не используется
- аргумент не используется во время компиляции: '-emit-pch'
- /tmp/system/include/libcxx/iostream.pch: ввод «линкер» не используется
Я удивлен, что PCH и PTH не использовались при синтаксическом анализе, так как же я могу использовать PCH или PTH или любой другой подход для повышения производительности синтаксического анализа?
PS.
PTH был сгенерирован с использованием clang++ -x c++-header iostream -emit-pth -o iostream.pth
, PCH аналогичным образом
Обновление 1:
Я нашел пример использования PCH:
// This will load all the symbols from 'IndexTest.c', excluding symbols
// from 'IndexTest.pch'.
char *args[] = { "-Xclang", "-include-pch=IndexTest.pch" };
TU = clang_createTranslationUnitFromSourceFile(Idx, "IndexTest.c", 2, args, 0, 0);
Проблема в том, что теперь я получаю еще одно предупреждение диагностики:
'-pch=/system/include/libcxx/iostream.pch' file not found
Похоже, аргументы командной строки были проанализированы неправильно. Что я делаю неправильно?