【问题标题】:g++/clang ultra fast parse but not compile mode?g++/clang 超快速解析但不是编译模式?
【发布时间】:2011-02-04 08:45:58
【问题描述】:

g++/clang 是否有一些超快速的“语法检查我的代码,但不编译模式”?唯一的目标是检查我拥有的代码是否是有效的 C++ 代码?

【问题讨论】:

    标签: c++ g++ clang


    【解决方案1】:

    -fsyntax-only 用于 GCC,这可能也适用于 Clang,因为它们模拟 GCC 的命令行选项。无论它是否明显更快,您都需要时间。

    【讨论】:

    • 速度问题实际上是在读取源 I/O、语法检查、编译以及对象输出 I/O 上花费了多少时间。我怀疑有足够的源包括读取 I/O 可能会占很大一部分,您只会从语法检查中看到最小的收益。
    • @Mark:根据我的经验,使用 ccache 缓存编译的输出几乎总是有意义的。并且不要忘记 C++ 可能还包含可以使纯编译时间飙升的模板。
    • 请注意,在 g++ 中,这只会解析代码,不会实例化,因此您可能会错过很多错误。 clang++ 在实例化后停止,这可能需要更长的时间但更有用。此外,在代码优化阶段会产生一些 g++ 警告,因此您也会错过这些警告。
    【解决方案2】:

    也许cppcheck 适合您?我不知道你想要什么结果。 cppcheck 不是纯语法检查。如果 cppcheck 足够快。

    【讨论】:

      【解决方案3】:

      您可以查看 gcc-xml (http://www.gccxml.org/HTML/Index.html),它重用 gcc 前端来生成源的 xml 描述。

      另一种选择是使用 edg 前端 (http://www.edg.com/index.php?location=c_frontend),但它不是开源的,而且远不便宜。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-27
        相关资源
        最近更新 更多