ChatGPT解决这个技术问题 Extra ChatGPT

LLVM C++ IDE for Windows

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

I wonder if in the future, Emacs gains support for Clang. Btw there is an emacs minor-mode here llvm.org/svn/llvm-project/cfe/trunk/utils/… though I haven't tested it myself.
Code::Blocks works with Clang.

P
Petri Tuononen

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


Hi. Glad to see you here! You say "MinGW binaries are provided for LLVM and front-ends" - can you add (here or on google-code site) a link to mingw binaries of LLVM?
Also, about thesis from your blog. clang is not for ada or fortran: "For other languages, including Java, Fortran and Ada, LLVM remains dependent on GCC"
You can get mingw binaries for LLVM 2.9 from here: llvm.org/releases/download.html#2.9
Good note: you're right that LLVM-GCC is for other languages. I should have written that "LLVM compiles" with no specific front-end mentioned but I will remove Fortran and Ada from the abstract.
You can also integrate the LLVM compiler with the Microsoft VS. Here is the link llvm.org/docs/GettingStartedVS.html. hope this helps.
o
osgx

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.


P
Peter Mortensen

Qt Creator works also with Clang...


Thanks, added to question. Can you say, from which version of QTcreator there is the support of clang?
2.4.1 would do.. on linux, you don't have to add clang tool chain manually.. here's the info how to add the toolchain if you're using windows: doc.qt.nokia.com/qtcreator-2.4/creator-tool-chains.html
but it is only using it for auto complete and parsing
r
relaxxx

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


P
Paul Fultz II

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


how does netbeans parse the source? Which C/C++ frontend does it use?
Yes netbeans parses the source itself for code completion. Perhaps in the future they will use clang for parsing, but that hasn't been integrated in yet. You can select different compilers for netbeans gcc or clang. I havent tried it with clang yet.
o
osgx

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


Good, but is clang auto-completion integrated with eclipse too?
M
Michał Wróbel

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.


H
Hindol

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


About plugin: "providing auto complete suggestions for C/C++/ObjC/ObjC++. It'll also optionally parse the code as it's typed and show errors and warnings."
DISCONTINUED
EasyClangComplete for Sublime 3 instead.
P
Paweł Bylica

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.


k
kfunk

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


KDevelop works well with the llvm-mingw compiler in my winlua toolchain but I am still working on debugger support: winlua.net
J
Jerry Coffin

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


But won't be able to use any features that are in addition to the standard toolset, such as code-analysis and tab-completion.
A
Arelius

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.


This kind of answer/questions should have a timeout.. ( meta topic )
Hernán Eche, yes, but I can change the accepted answer anytime. You can ask me if you feels that situation is changed and the answer is "Yes"
s
sunny moon

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.