LLVM C ++ IDE für Windows


92

Gibt es eine C / C ++ IDE für Windows, welches integriert mit dem LLVM - Compiler (und Clang C / C ++ Analysator), genauso wie moderne Xcode tun.

Ich habe Dev-Cpp (es verwendet veraltete GCC) und Code :: Blocks (mit einigen GCC). Aber GCC gibt mir sehr kryptische Fehlermeldungen. Ich möchte einige benutzerfreundlichere Fehlermeldungen vom Clang-Frontend erhalten.

Ja, Clang konnte nicht mit komplexem C ++ - Code verwendet werden, aber Trunk Clang kann LLVM bereits selbst kompilieren. Ich frage mich also, ob es LLVM-IDEs in der Entwicklung oder in Beta-Versionen gibt.

Ja, ich kann Clang als anderen Compiler mit GCC-kompatiblen IDEs verwenden. Aber gibt es eine IDE, die in Clang integriert ist ? Clang hat ein anderes Ausgabeformat, daher muss die IDE es analysieren. Clang kann das IDE-Parsen von Quellen ermöglichen. Clang verfügt über eine Analyseoption, die in einer IDE unterstützt werden muss. Schauen Sie sich das an, z. B. http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Und die meistgesuchte Funktion von Clang - ist die intelligente automatische Vervollständigung, sodass die IDE nur syntaktisch korrekte Varianten vorschlagen kann, z. B. nur Felder dieser Strukturklasse auflisten.

Ergebnisse: (aus Antworten zusammengeführt):


3
Ich frage mich, ob Emacs in Zukunft Unterstützung für Clang erhält. Übrigens gibt es hier einen Emacs-Minor-Modus llvm.org/svn/llvm-project/cfe/trunk/utils/… obwohl ich ihn selbst nicht getestet habe.
Ustun

Code :: Blocks funktioniert mit Clang.
James Harper

Antworten:


59

LLVM wird in Eclipse CDT über das Plug-In ( llvm4eclipsecdt ) unterstützt. Soweit ich weiß, ist es die einzige von Windows unterstützte IDE, die LLVM unterstützt . Ich bin der Hauptautor des Plug-Ins, sodass Sie Fragen dazu stellen können.

Das Plug-In bietet die grundlegenden Funktionen für die Clang- und llvm-gcc-Kompilierung und unterstützt Linux und Windows (mit Cygwin & MiNGW). LLVM-Tools wie Assembler, Archiver, Linker und Static Compiler (llc) sind konfiguriert und können über die Benutzeroberfläche angepasst werden. Das Plug-In bietet alle Vorteile, die IDE bieten kann, z. B. einfache Konfiguration und Erstellung mit einer Aktion.

Der einzige Nachteil ist, dass es noch nicht fertig ist, da einige der erweiterten Funktionen, die LLVM bieten kann, wie Clang-Analyse und intelligente automatische Vervollständigung, fehlen. Das Plug-In ist ebenfalls nicht gut getestet und funktioniert möglicherweise nicht einwandfrei. Daher hoffe ich, dass ich über die Mailingliste auf der Google-Code-Entwicklungsseite (siehe unten) Feedback von Benutzern erhalten kann. Ich wünschte, ich hätte Zeit, es weiterzuentwickeln. Ich entwickle es nur in meiner Freizeit, die sehr begrenzt ist. Ich begrüße alle Entwickler, die teilnehmen und zum Projekt beitragen möchten.

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

Eclipse-Marktplatz (100% kostenlos und Open Source):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

UPDATE: Das Plugin ist veraltet. Installieren Sie stattdessen "C / C ++ LLVM-Family Compiler Build Support" unter Programmiersprachen über die offizielle Eclipse-Update-Site, z. B. http://download.eclipse.org/releases/mars


Hallo. Schön dich hier zu sehen! Sie sagen "MinGW-Binärdateien werden für LLVM und Frontends bereitgestellt" - können Sie (hier oder auf der Google-Code-Site) einen Link zu Mingw-Binärdateien von LLVM hinzufügen?
Osgx

1
Auch über Abschlussarbeiten aus Ihrem Blog. clang ist nicht für ada oder fortran: "Für andere Sprachen, einschließlich Java, Fortran und Ada, bleibt LLVM abhängig von GCC"
osgx

2
Sie können mingw Binärdateien für LLVM 2.9 von hier erhalten: llvm.org/releases/download.html#2.9
Petri Tuononen

1
Guter Hinweis: Sie haben Recht, dass LLVM-GCC für andere Sprachen ist. Ich hätte schreiben sollen, dass "LLVM kompiliert", ohne dass ein bestimmtes Frontend erwähnt wird, aber ich werde Fortran und Ada aus der Zusammenfassung entfernen.
Petri Tuononen

Sie können den LLVM-Compiler auch in Microsoft VS integrieren. Hier ist der Link llvm.org/docs/GettingStartedVS.html . hoffe das hilft.
Krishna Oza

21

Der LLVM-Mitarbeiter Dan Gohman hat kürzlich die Vervollständigung des Clang-Codes zu vim hinzugefügt .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc ist für die Entwicklung von LLVM selbst vorgesehen und hilft beim LLVM-Codierungsstil. Der Code-Vervollständigungsabschnitt sollte jedoch leicht zu extrahieren sein .

Ja, ja, vim ist keine IDE, aber es kann nützlich sein, etwas darüber zu wissen.

[Bearbeiten] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el bietet eine ähnliche Option für Emacs .


11

Qt Creator arbeitet auch mit Clang ...


Danke, zur Frage hinzugefügt. Können Sie sagen, ab welcher Version von QTcreator gibt es die Unterstützung von Clang?
Osgx

1
2.4.1 würde funktionieren. Unter Linux müssen Sie die Clang- Toolkette
Kokizzu

aber es wird nur für die automatische Vervollständigung und Analyse verwendet
James Harper


5

Es gibt keine für Windows. Wenn Sie jedoch eine intelligente automatische Vervollständigung wünschen, bietet netbeans eine der besten Codevervollständigungen für C ++. Es analysiert Makros, generische Container und intelligente Zeiger. Außerdem bietet es Refactoring, Code-Einfügung von Konstruktoren sowie Getter und Setter. Es funktioniert wirklich gut. Da jedoch immer noch ein separater Parser für C ++ verwendet wird, werden nicht so viele Fehler abgefangen wie beim Compiler.

Netbeans für Java ist in den Compiler integriert, sodass während der Eingabe Fehler und Warnungen sowie eine syntaktisch korrekte Code-Vervollständigung angezeigt werden. Daher werden Netbeans sehr wahrscheinlich in Zukunft in Clang integriert, um die gleichen Funktionen für C ++ bereitzustellen.


2
Wie analysieren Netbeans die Quelle? Welches C / C ++ - Frontend wird verwendet?
Osgx

3
Ja, Netbeans analysiert die Quelle selbst, um den Code zu vervollständigen. Vielleicht werden sie in Zukunft Clang zum Parsen verwenden, aber das wurde noch nicht integriert. Sie können verschiedene Compiler für netbeans gcc oder clang auswählen. Ich habe es noch nicht mit Klirren versucht.
Paul Fultz II





3

Clang hat einen Treiber, der (zumindest sollte) ein direkter Ersatz für gcc ist. Daher sollte im Wesentlichen jede IDE, die gcc als Compiler verwenden kann, Clang auch als Compiler verwenden können (obwohl ich ihn nicht persönlich getestet habe). Ich kann also nicht wirklich dafür bürgen, wie gut es funktioniert.


1
Es können jedoch keine Funktionen verwendet werden, die zusätzlich zum Standard-Toolset verfügbar sind, z. B. Code-Analyse und Tab-Vervollständigung.
Mooing Duck

3

Nein.

Nur xcode bietet derzeit nur minimale Clang-Unterstützung. Wenn Sie die statische Analyse von Clang unter Windows verwenden möchten, müssen Sie dies über die CLI tun.


6
Diese Art von Antwort / Fragen sollte eine Zeitüberschreitung haben .. (Meta-Thema)
Hernán Eche

Hernán Eche, ja, aber ich kann die akzeptierte Antwort jederzeit ändern. Sie können mich fragen, ob Sie das Gefühl haben, dass sich die Situation geändert hat und die Antwort "Ja"
lautet

3

KDevelop für Windows ist eine weitere Option. Während es sich noch in einem frühen Stadium befindet (Sie müssen derzeit die Umgebung einrichten, um MSVC / MinGW-Compiler selbst verwenden zu können), ist es verwendbar und bringt das beeindruckende Code-Verständnis der IDE auf Windows.

https://www.kdevelop.org/features


1

Keine IDE, aber eine Art Kreuzung zwischen IDE und einfachem Editor, eine brauchbare Alternative für diejenigen, denen es nichts ausmacht, Konfigurationen von Hand zu schreiben: eine Kombination aus Sublime Text 3- Editor und EasyClangComplete- Plugin (plus Clang-Format , um Ihren Code sauber zu halten und ordentlich). Funktioniert unter Windows gut, dank der jüngsten Bemühungen, LLVM MSVC-kompatibel zu machen ( Clang-cl kann ab 2018 auch kompatible .PDBs generieren , was für das Debuggen von entscheidender Bedeutung ist).

Update: Ab 2019 ist die Verwendung von Clangd über das LSP- Plugin eine viel bessere und zukunftssichere Alternative zu EasyClangComplete .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.