forair 2023-02-15 19:48 采纳率: 50%
浏览 19
已结题

用clang如何将多个c++文件可以生成一个大的ast文件?

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON path/to/llvm/sources可以生成 compile_commands.json
然后clang怎么用这个文件来生成ast文件吗?如果可以的话,clang这个功能是什么版本开始支持的?
谢谢。

  • 写回答

3条回答 默认 最新

  • 菜鸟才能学的更多 2023-02-15 20:02
    关注

    compile_commands.json 文件是用来描述编译过程的 JSON 格式文件。在使用 Clang 分析源代码时,可以通过该文件来指定编译选项,以及编译源文件的命令。Clang 工具可以通过读取 compile_commands.json 文件来获取编译选项和编译命令,然后对源代码进行静态分析。

    要使用 compile_commands.json 文件来生成 AST 文件,可以使用 Clang 工具中的 clang-tool。 clang-tool 可以根据 compile_commands.json 文件中的信息来构建代码,生成 AST 文件。

    具体来说,可以使用以下命令来生成 AST 文件:

    clang-tool -p /path/to/build/folder /path/to/source.cpp
    

    其中,-p 参数指定编译数据库的路径,即 compile_commands.json 所在的路径,/path/to/source.cpp 是需要生成 AST 文件的源文件路径。

    Clang 从 3.4 版本开始支持 compile_commands.json 文件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月4日
  • 已采纳回答 2月24日
  • 创建了问题 2月15日

悬赏问题

  • ¥15 FOC simulink
  • ¥15 咨询一下有关于王者荣耀赢藏战绩
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?