适用于 Windows 的 LLVM C++ IDE

Posted

技术标签:

【中文标题】适用于 Windows 的 LLVM C++ IDE【英文标题】:LLVM C++ IDE for Windows 【发布时间】:2011-01-30 02:00:56 【问题描述】:

是否有一些适用于 Windows 的 C/C++ IDE,它与 LLVM 编译器(和 Clang C/C++ 分析器)集成,就像现代 Xcode 一样。

我有 Dev-Cpp(它使用过时的 GCC)和Code::Blocks(带有一些 GCC)。但是 GCC 给了我非常神秘的错误信息。我想从 Clang 前端获得一些对用户更友好的错误消息。

是的,Clang 不能用于复杂的 C++ 代码,但trunk Clang 已经可以编译 LLVM 本身。所以我想知道是否有任何 LLVM IDE 处于开发或 beta 版本中。

是的,我可以将 Clang 用作具有 GCC 兼容 IDE 的其他编译器。但是是否有任何 IDE 与 Clang 集成? Clang 有不同的输出格式,所以 IDE 必须解析它。 Clang 可以提供源代码的 IDE 解析。 Clang 有一个分析选项,IDE 必须支持该选项。看一下,例如http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Clang 最想要的特性是智能自动补全,因此 IDE 只能建议语法正确的变体,例如仅列出此结构、类的字段。

结果:(从答案合并):

带有 CDT>=8 和 https://code.google.com/archive/p/llvm4eclipsecdt/ 插件的 Eclipse,来自 Petri Tuononen(无智能自动完成功能) 来自 LLVM 项目的带有 vimrc 的 Vim(仅限智能完成?)https://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/ 带有(仅智能完成?)https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el 的 Emacs Qt 创建者:https://blog.qt.io/blog/2011/10/19/qt-creator-and-clang/ CodeLite:http://www.codelite.org/LiteEditor/ClangIntegration35

【问题讨论】:

我想知道将来 Emacs 是否会获得对 Clang 的支持。顺便说一句,这里有一个 emacs 次要模式 llvm.org/svn/llvm-project/cfe/trunk/utils/… 虽然我自己没有测试过。 Code::Blocks 与 Clang 一起使用。 【参考方案1】:

Eclipse CDT 通过插件 (llvm4eclipsecdt) 支持 LLVM。据我所知,它是唯一支持 LLVM 的 Windows IDE。我是该插件的主要作者,因此您可以提出任何相关问题。

该插件提供 Clang 和 llvm-gcc 编译的基本功能,并支持 Linux 和 Windows(带有 Cygwin 和 MiNGW)。 LLVM 工具,如汇编器、归档器、链接器和静态编译器 (llc) 已配置并可通过 UI 进行定制。该插件提供了 IDE 可以提供的所有好处,例如简单的配置和一次操作即可构建。

唯一的缺点是它还没有准备好,因为它缺少 LLVM 可以提供的一些高级功能,例如 Clang 分析和智能自动完成。该插件也没有经过很好的测试,可能无法完美运行,因此我希望我可以通过从谷歌代码开发网站(如下所列)找到的邮件列表获得用户反馈。我希望我有时间进一步开发它。我只是在业余时间开发它,非常有限。我欢迎任何开发者参与并为该项目做出贡献。

开发地点:http://code.google.com/p/llvm4eclipsecdt/https://github.com/TuononenP/llvm4eclipsecdt

Eclipse 市场(100% 免费和开源):http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

更新:该插件已弃用。而是使用官方 Eclipse 更新站点,例如在 Programming Languages 下安装“C/C++ LLVM-Family Compiler Build Support”。 http://download.eclipse.org/releases/mars

【讨论】:

嗨。很高兴在这里见到你!您说“为 LLVM 和前端提供了 MinGW 二进制文件”-您可以(在此处或在 google-code 网站上)添加指向 LLVM 的 mingw 二进制文件的链接吗? 另外,关于您博客中的论文。 clang 不适用于 ada 或 fortran:“对于其他语言,包括 Java、Fortran 和 Ada,LLVM 仍然依赖于 GCC” 您可以从这里获取 LLVM 2.9 的 mingw 二进制文件:llvm.org/releases/download.html#2.9 请注意:LLVM-GCC 适用于其他语言是对的。我应该写“LLVM compiles”,但没有提到具体的前端,但我会从摘要中删除 Fortran 和 Ada。 您还可以将 LLVM 编译器与 Microsoft VS 集成。这是链接llvm.org/docs/GettingStartedVS.html。希望这会有所帮助。【参考方案2】:

LLVM 贡献者 Dan Gohman 最近将 Clang 代码完成添加到 vim

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc 旨在用于开发 LLVM 本身并有助于 LLVM 编码风格,但代码完成部分应该很容易提取。

是的,是的,vim 不是 IDE,但了解它可能很有用。

[edit] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el 为 emacs 提供了类似的选项。

【讨论】:

【参考方案3】:

Qt Creator 也适用于 Clang...

【讨论】:

谢谢,已添加到问题中。能说一下,QTcreator是从哪个版本开始支持clang的吗? 2.4.1 就可以了.. 在 linux 上,您不必手动添加 clang 工具链。如果您使用的是 windows,这里是如何添加工具链的信息:doc.qt.nokia.com/qtcreator-2.4/creator-tool-chains.html 但它仅用于自动完成和解析【参考方案4】:

现在他们正在添加对 Visual Studio link 的支持。 可以here下载。

【讨论】:

【参考方案5】:

没有一个适用于 Windows 的。但是,如果您想要智能自动完成,netbeans 拥有最好的 C++ 代码完成之一。它解析宏、通用容器和智能指针。此外,它还提供重构、构造函数和 getter 和 setter 的代码插入。它真的很好用。但是,由于它仍然为 C++ 使用单独的解析器,因此它不会像编译器那样捕获那么多的错误。

Netbeans for java 与编译器集成在一起,因此它会在您键入时给出错误和警告,以及语法正确的代码补全。因此,netbeans 很可能在未来与 clang 集成,为 C++ 提供相同的特性。

【讨论】:

netbeans如何解析源码?它使用哪个 C/C++ 前端? 是的 netbeans 解析源代码本身以完成代码。也许将来他们会使用clang进行解析,但尚未集成。您可以为 netbeans gcc 或 clang 选择不同的编译器。我还没有用clang尝试过。【参考方案6】:

LLVM 支持已添加到 Eclipse:http://marketplace.eclipse.org/node/28778

【讨论】:

好,但是clang自动完成是否也与eclipse集成?【参考方案7】:

此外,CodeLite 具有用于智能代码完成的 Clang 后端。见Using clang code-completion with CodeLite。

CodeLite 可用于 Windows,但是我还没有在 Windows 下测试过。

【讨论】:

【参考方案8】:

我可以添加 SublimeText 2 吗?它已经有一个插件SublimeClang,支持基于clang的智能代码补全。

【讨论】:

关于插件:“为 C/C++/ObjC/ObjC++ 提供自动完成建议。它还可以选择在输入代码时解析代码并显示错误和警告。” 停产 EasyClangComplete 用于 Sublime 3。【参考方案9】:

LLVM 提供 Windows snapshot builds - 一个用于 Visual Studio 作为 Windows 安装程序的 clang 工具集。目前它应该与 Visual Studio 2010、2012 和 2013 集成。更多信息可以在 LLVM 的博客文章中找到A path forward for an LLVM toolchain on Windows

【讨论】:

【参考方案10】:

KDevelop for Windows 是另一种选择。虽然仍处于早期阶段(您目前需要设置环境才能自己使用 MSVC/MinGW 编译器),但它是可用的,并将 IDE 的出色代码理解带到 Windows。

https://www.kdevelop.org/features

【讨论】:

KDevelop 与我的 winlua 工具链中的 llvm-mingw 编译器配合得很好,但我仍在致力于调试器支持:winlua.net【参考方案11】:

Clang 有一个(至少应该是)直接替代 gcc 的驱动程序,因此基本上任何可以使用 gcc 作为其编译器的 IDE 也应该能够使用 clang 作为其编译器(尽管我还没有测试过)就个人而言,所以我不能保证它的效果如何)。

【讨论】:

但无法使用除标准工具集之外的任何功能,例如代码分析和制表符补全。【参考方案12】:

没有。

目前只有 xcode 对 clang 的支持最少。如果你想在 windows 上使用 clang 静态分析,你必须通过 CLI 来完成。

【讨论】:

这种答案/问题应该有一个超时..(元主题) Hernán Eche,是的,但我可以随时更改接受的答案。您可以问我是否觉得情况有所改变,答案是“是”【参考方案13】:

不完全是 IDE,而是 IDE 和普通编辑器之间的一种交叉,对于那些不介意手动编写配置的人来说是一个可用的替代方案:Sublime Text 3 编辑器和EasyClangComplete 插件的组合(加上@987654323 @ 保持你的代码整洁)。由于最近努力使 LLVM MSVC 兼容(Clang-cl 也能够在 2018 年生成 compatible .PDBs,这对于调试至关重要),因此在 Windows 上运行良好。

更新:截至 2019 年,EasyClangComplete 的一个更好且面向未来的替代方案是通过 LSP 插件使用 Clangd。

【讨论】:

以上是关于适用于 Windows 的 LLVM C++ IDE的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 10 上安装适用于 C++ 的 tesseract

Windows 上适用于 Linux 的 C++ 编译器? [关闭]

如何在 c++ 中创建一个适用于 Windows 和 linux 的文件夹(目录)[重复]

是否有一种标准方法来捕获适用于 linux 和 windows 的 c++ 应用程序中的键盘输入?

是否有适用于 Windows 的 iTunes C++ 库允许访问 USB 连接的 iOS 设备的文件系统?

OpenCV 3.0 和 c++ (windows)