【问题标题】:clang-based cross-platform C++ IDE?基于clang的跨平台C++ IDE?
【发布时间】:2011-12-13 00:31:41
【问题描述】:

clang C++ 编译器声称通过为 IDE 提供用于解析代码等任务的 API 来实现更好的 IDE 集成。

那么,是否有任何优秀的 C++ IDE 使用 clang 来提供语义突出显示、重构以及实时查找和显示语义错误等功能?

我一直在使用 Eclipse CDT,但是它的 C++ 解析器充满了缺陷,导致 IDE 在代码中报告很多烦人的误报错误。我希望有一个 IDE 当且仅当编译器报告相同的错误时才报告错误,因此我对构建在编译器内部的 IDE 感兴趣。

我主要对跨平台 IDE 感兴趣,尽管我不介意了解适用于 Windows 或 Linux 的单平台 IDE(所以不是 Xcode),只要它们是 FOSS( 不是 Xcode)的另一个原因。

【问题讨论】:

    标签: c++ ide cross-platform clang


    【解决方案1】:

    Qt Creator 将他们的下一代代码解析和相关功能基于 Clang:

    https://www.qt.io/blog/2011/10/19/qt-creator-and-clang

    看起来非常非常有前途!

    【讨论】:

    • 不错的收获!几天前也刚刚宣布。
    • HighCommander4:如果您在 Clang 邮件列表中,它会有所帮助;-)
    • 我有点希望会有更多……但我想 clang 是一个相当年轻的项目,并且会及时出现更多。暂时,回答接受:)
    • 值得注意的是,这项努力has been abandoned。显然,Qt Creator 的人发现性能不够好,并返回维护自己的 C++ 解析器。
    • @HighCommander4 他们当然没有放弃它!那是 4 年前的帖子了,你猜怎么着? Clang 代码模型仍然存在,尽管它使用的内存大约是旧 Qt Creator 代码模型的 5 倍,但它至少可以识别所有花哨的新东西,并且您会在 IDE 中收到 Clang 的错误/警告消息。只是进一步反驳你的观点,他们想增加 Clang 在 IDE 中的使用:blog.qt.io/blog/2017/05/24/qt-creator-4-3-0-released/…
    【解决方案2】:

    你试过clang complete吗?

    如果你是朋克摇滚,那么 vim 就足够了 ide ;)

    我经常使用 xcode,所以...不能真正分享第一手经验,但我知道它的存在。

    【讨论】:

    • @lurscher 不客气 - 这个周末我也打算试一试。
    【解决方案3】:

    gedit 并不是真正的 IDE,但有一个 plugin for it that provides code assistance using clang

    【讨论】:

      【解决方案4】:

      似乎 CodeLite v3.5 starts 原生支持 Clang。但是我还没有发现是否可以将 LLVM 设置为后端。

      【讨论】:

      • 太棒了!!如果您遇到问题,请不要更新此答案
      【解决方案5】:

      Language Server Protocol (LSP) 项目在该领域的一项相关新开发,旨在成为一种与语言无关的 API,允许编辑器/IDE 与提供代码智能/分析的后端分离。

      目前正在创建一个名为 Clangd 的基于 clang 的 C++ 后端。

      several editors / IDEs 也正在进行工作以支持作为客户端的 LSP。

      一旦后端实现成熟,所有支持 LSP 的编辑器原则上都可以利用通过 Clangd 公开的 clang 功能。

      【讨论】:

        【解决方案6】:

        KDevelop 现在支持基于 clang 的 c 和 c++,包括语义分析和自动完成。它主要适用于 linux,但(截至 2016 年 10 月)也有适用于 windows 和 mac 的 beta 版本。

        对于 emacs,有 irony-modertags 提供自动完成、即时错误检查和跳转到符号等功能。与 cmake-ide 结合使用时,它们是非常强大的工具,精通 emacs 的人可以在这种环境中高效工作。

        【讨论】:

          【解决方案7】:

          不是 FOSS,而是 JetBrains(以 IDEA 和 ReSharper 闻名)正在将他们的 AppCode 产品构建为 full C++ IDE supporting Win/Linux/Mac and using clang

          Yes, really.

          【讨论】:

          • 除了与 clang 静态分析器集成之外,您是否有任何证据表明这是基于 clang 的?
          • 我不知道它是使用clang还是遵循平台工具链进行实际构建,但这不是您最初的问题。不过,我确信它会将 clang 用于其他所有功能 - 这就是 clang 的设计目的,而且似乎没有任何可行的替代方案。
          • 我指的是诸如代码完成、代码导航、语法高亮和重构等功能由 clang 提供支持。我所知道的任何其他 C++ IDE 都不是这种情况——Eclipse、Code::Blocks、CodeLite、NetBeans、KDevelop、Qt Creator——除了 XCode 和 @rubenvb 谈论的下一代 Qt Creator,那就是为什么我问。
          • 它似乎没有将clang用于代码模型或静态分析或除了构建之外的任何其他内容。
          【解决方案8】:

          jcipp

          2019Q2 在 GitHub 上有 900 颗星:https://github.com/cppit/jucipp

          现在移至 GitLab:https://gitlab.com/cppit/jucipp

          明确将 libclang 后端宣传为主要功能。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-06-25
            • 1970-01-01
            • 2011-04-14
            • 1970-01-01
            • 1970-01-01
            • 2011-07-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多