gpt4 book ai didi

c++ - 如何使用 PCH 或 PTH 提高 clang 解析性能?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:52:01 33 4
gpt4 key购买 nike

我正在使用 Clang C API 进行解析和获取诊断。我注意到我一直在使用相同的 header 包,因此我决定尝试使用 PCH 或 PTH 来提高性能。

但我得到的诊断结果表明,在 clang_parseTranslationUnit 时既没有使用 PCH 也没有使用 PTH:

  • 编译期间未使用的参数:'-emit-pth'
  • /tmp/system/include/libcxx/iostream.pth: “链接器”输入未使用
  • 编译期间未使用的参数:'-emit-pch'
  • /tmp/system/include/libcxx/iostream.pch: “链接器”输入未使用

我很惊讶在解析时没有使用 PCH 和 PTH,那么我如何使用 PCH 或 PTH 或任何其他方法来提高解析性能?

附言。

PTH 是使用 clang++ -x c++-header iostream -emit-pth -o iostream.pth 生成的,PCH 以类似的方式生成

更新 1:

我找到了 PCH usage example :

// 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

看起来命令行参数解析不正确。我做错了什么?

最佳答案

需要在每个参数前包含-Xclang:

char *args[] = { "-Xclang", "-include-pch", "-Xclang", "IndexTest.pch" };

参见 https://reviews.llvm.org/diffusion/L/browse/cfe/trunk/test/Index/c-index-pch.c寻找灵感。

关于c++ - 如何使用 PCH 或 PTH 提高 clang 解析性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26830997/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com