【问题标题】:For MSVC 2015 with Clang and Codegen, how do I get -ast-dump to work?对于带有 Clang 和 Codegen 的 MSVC 2015,我如何让 -ast-dump 工作?
【发布时间】:2015-12-21 12:07:27
【问题描述】:

我已经为 Visual C++ 2015 安装了 Clang 和 Codegen。我制作了一个新的控制台应用程序,它打印出“Hello, world!”并将 Debug x86 和 Release x86 中的 Platform Toolset 设置为:

带有 Microsoft CodeGen 的 Clang 3.7 (v140_clang_3_7)

我关闭了预编译头文件,在 C/C++ -> 命令行下,我在 Debug x86 和 Release x86 中都添加了一个新命令:

-ast-转储

然后我在调试模式下构建程序。程序构建成功并给出了预期的结果;但是,clang.exe 有这个警告:

1> 来源.cpp

1>clang.exe:警告:编译期间未使用的参数:'-ast-dump'

1> tester5.vcxproj -> c:\users\erika\documents\visual studio 2015\Projects\tester5\Debug\tester5.exe

为什么在编译期间没有使用参数 -ast-dump?如何让 Clang 从这里转储 AST?

【问题讨论】:

  • 请注意,有可以转储 ast 的二进制 clang-check。

标签: c++ c visual-studio clang abstract-syntax-tree


【解决方案1】:

您需要使用-Xclang -ast-dump(以及您喜欢的任何其他选项)

【讨论】:

  • 谢谢!这行得通,尽管转储非常长!程序所做的只是包含 并打印“Hello, world!”
  • 是的,<iostream> 本身就相当大...而且由于这是编译的源代码的一部分,clang 会为它转储 ast...没有办法解决这个问题 - 除了“替换它与 printf 并使用 extern int printf(const char* fmt, ...);
猜你喜欢
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 2012-05-14
  • 1970-01-01
  • 2022-12-08
  • 2011-07-05
  • 2013-09-04
相关资源
最近更新 更多