我正在使用 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
看起来命令行参数解析不正确..我做错了什么?