LLVM C++ IDE for Windows

C++WindowsIdeLlvmClang

C++ Problem Overview


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):

C++ Solutions


Solution 1 - C++

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/</del><br /> https://github.com/TuononenP/llvm4eclipsecdt

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

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</b>

Solution 2 - C++

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.

Solution 3 - C++

Qt Creator works also with Clang...

Solution 4 - C++

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

Solution 5 - C++

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++.

Solution 6 - C++

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

Solution 7 - C++

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.

Solution 8 - C++

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

Solution 9 - C++

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.

Solution 10 - C++

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

Solution 11 - C++

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).

Solution 12 - C++

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.

Solution 13 - C++

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).

Update: As of 2019, a much better and future-proof alternative to EasyClangComplete is using Clangd via LSP plugin.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionosgxView Question on Stackoverflow
Solution 1 - C++Petri TuononenView Answer on Stackoverflow
Solution 2 - C++ohmanticsView Answer on Stackoverflow
Solution 3 - C++KokizzuView Answer on Stackoverflow
Solution 4 - C++relaxxxView Answer on Stackoverflow
Solution 5 - C++Paul Fultz IIView Answer on Stackoverflow
Solution 6 - C++Leo HippeläinenView Answer on Stackoverflow
Solution 7 - C++Michał WróbelView Answer on Stackoverflow
Solution 8 - C++HindolView Answer on Stackoverflow
Solution 9 - C++Paweł BylicaView Answer on Stackoverflow
Solution 10 - C++kfunkView Answer on Stackoverflow
Solution 11 - C++Jerry CoffinView Answer on Stackoverflow
Solution 12 - C++AreliusView Answer on Stackoverflow
Solution 13 - C++sunny moonView Answer on Stackoverflow