LLVM C++ IDE for Windows

2019-01-29 18:19发布

问题:

Is there some C/C++ IDE for Windows, which is integrated with the LLVM compiler (and Clang C/C++ analyzer), just like modern Xcode do.

I have Dev-Cpp (it uses outdated GCC) and Code::Blocks (with some GCC). But GCC gives me very cryptic error messages. I want to get some more user-friendly error messages from the Clang frontend.

Yes, Clang was not able to be used with complex C++ code, but trunk Clang already can compile LLVM itself. So I wonder if is there any of LLVM IDEs in development or in beta versions.

Yes, I can use Clang as other compiler with GCC-compatible IDEs. But is there any IDE, that are integrated with Clang? Clang have a different output format, so the IDE must parse it. Clang can provide IDE parsing of sources. Clang has an analyze option, which must be supported in an IDE. Take a look, e.g http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

And the most wanted feature of Clang - is smart auto-completion, so the IDE can suggest only syntaxilly-correct variants, e.g. list only fields of this struct, class.

Results: (merged from answers):

  • Eclipse with CDT>=8 and with https://code.google.com/archive/p/llvm4eclipsecdt/ plugin, from Petri Tuononen (no smart auto-completion)
  • Vim with vimrc from the LLVM project (smart completion only?) https://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/
  • Emacs with (smart completion only?) https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el
  • Qt Creator: https://blog.qt.io/blog/2011/10/19/qt-creator-and-clang/
  • CodeLite: http://www.codelite.org/LiteEditor/ClangIntegration35

回答1:

LLVM is supported in Eclipse CDT via plug-in (llvm4eclipsecdt). It is the only Windows supported IDE supporting LLVM as far as I know. I am the main author of the plug-in so you can ask any questions related to it.

The plug-in offers the basic functionality for Clang and llvm-gcc compilation and support Linux and Windows (w/ Cygwin & MiNGW). LLVM tools such as assembler, archiver, linker, and static compiler (llc) are configured and can be customized via UI. The plug-in offers all the benefits that IDE can offer such as easy configuration and building with one action.

The only drawback is that it is not ready yet as it lacks of some of the advanced features that LLVM can offer such as Clang analyze and smart auto-completion. The plug-in is also not tested well and may not work perfectly therefore I hope I can get user feedback via mailing list found from Google code development site (listed below). I wish I had time to develop it further. I only develop it in my spare time, which is very limited. I welcome any developers to participate and contribute to the project.

Development site:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Eclipse marketplace (100% free & open-source):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

UPDATE: The plugin is deprecated. Instead install "C/C++ LLVM-Family Compiler Build Support" under Programming Languages using the official Eclipse update site e.g. http://download.eclipse.org/releases/mars



回答2:

LLVM contributor Dan Gohman recently added Clang code completion to vim.

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc is intended for use in developing LLVM itself and helps with the LLVM coding style, but the code completion portion should be easy enough to extract.

Yeah, yeah, vim isn't an IDE, but it may be useful to know about.

[edit] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el provides a similar option for emacs.



回答3:

Qt Creator works also with Clang...



回答4:

Now they are adding support for Visual Studio link. It can be downloaded here.



回答5:

There isn't one for windows. But if you want smart auto-completion, netbeans has one of the best code completions for C++. It parses macros, generic containers, and smart pointers. Plus it provides refactoring, code insertion of constructors and getters and setters. It works really well. However, since it still uses a separate parser for C++, it doesn't catch as many errors as the compiler does.

Netbeans for java is integrated in with the compiler, so it gives errors and warnings as you type, as well as syntactically correct code completion. So, netbeans will very likely in the future integrate with clang to provide the same kind of features for C++.



回答6:

Also, CodeLite has Clang backend for smart code completion. See Using clang code-completion with CodeLite.

CodeLite is available for Windows, however, I haven't tested it under Windows yet.



回答7:

LLVM support has been added to Eclipse: http://marketplace.eclipse.org/node/28778



回答8:

May I add SublimeText 2? It already has a plugin SublimeClang that supports clang based smart code-completion.



回答9:

LLVM provides Windows snapshot builds - a clang toolset for Visual Studio as Windows installer. Currently it should integrate with Visual Studio 2010, 2012 and 2013. More information can be found on LLVM's blog post A path forward for an LLVM toolchain on Windows.



回答10:

Clang has a driver that's (at least supposed to be) a direct substitute for gcc, so essentially any IDE that can use gcc as its compiler should be able to use clang as its compiler as well (though I haven't tested it personally, so I can't really vouch for how well it works).



回答11:

No.

Only xcode has minimal clang support currently. If you want to use clang static analysis on windows you'll have to do it through the CLI.



回答12:

KDevelop for Windows is another option. While still in early stages there (you currently need to set up the environment to be able to use MSVC/MinGW compilers yourself), it's usable and brings the awesome code comprehension of the IDE to Windows.

https://www.kdevelop.org/features



回答13:

Not quite an IDE, but kind of a crossover between IDE and plain editor, a usable alternative for those who don't mind writing configs by hand: a combo of Sublime Text 3 editor and EasyClangComplete plugin (plus Clang Format to keep your code neat and tidy). Works well on Windows thanks to recent efforts to make LLVM MSVC-compatible (Clang-cl is also capable of generating compatible .PDBs as of 2018, which is crucial for debugging).