【问题标题】:Temporary file with the contents of all the included headers [duplicate]包含所有包含头文件内容的临时文件[重复]
【发布时间】:2013-04-10 10:18:50
【问题描述】:

我需要跟踪与包含头文件相关的错误,我怀疑一个或多个文件具有不匹配的大括号和/或圆括号,我认为这对于查看之前的文件很有用-processor 带给编译器;那是完成所有宏替换并且完全粘贴了标题的所有内容的文件。

我知道有一个编译器选项可以将此临时文件保存到磁盘,但在谷歌搜索后我无法找到为我提供该信息的搜索字符串,所以我寻求帮助:

哪个编译器选项可以将预处理器的输出保存到磁盘中?

我对以下编译器的此选项感兴趣:

  • 海合会
  • 叮当
  • msvc

【问题讨论】:

  • 你也可以看看this
  • 好一个@SuvP!谢谢,顺便说一句,我正在阅读有关 gcc 的 -save-temps
  • 谷歌搜索“C 预处理器输出”、“预处理后的 C”和其他类似的搜索字符串在其第一个结果中具有其他类似且回答良好的 SO 问题。那么您尝试了哪些搜索字符串?
  • 顺便说一句:您将希望减少来源并尽可能多地删除包含。只需包含几个标头即可快速实现具有数十万行的预处理输出。
  • 我很惭愧@ArneMertz,在放弃谷歌搜索后,我找到了很多答案......不记得我尝试过的搜索字符串

标签: c++ visual-c++ gcc clang compiler-options


【解决方案1】:

大多数,如果不是所有编译器(我曾经使用过的所有编译器)都允许您使用CC -E myfile.cpp > myfile.i“预处理源文件”,其中CC 是编译器的名称(例如CL、@987654324 @、g++clangclang++

这将生成包含所有内容的大文件,并且如果您可以访问自动格式化文件的编辑器(例如 Emacs 中的 M-x indent-region 等),然后您可以使用它来缩进并查看您无与伦比的位置大括号是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 2013-12-23
    • 2011-11-30
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多