IDE LLVM C ++ per Windows


92

Esiste un IDE C / C ++ per Windows, ovvero integrato con il compilatore LLVM (e l'analizzatore Clang C / C ++), proprio come fanno i moderni Xcode.

Ho Dev-Cpp (utilizza GCC obsoleto) e Code :: Blocks (con alcuni GCC). Ma GCC mi dà messaggi di errore molto criptici. Voglio ricevere alcuni messaggi di errore più user-friendly dal frontend Clang.

Sì, Clang non poteva essere utilizzato con codice C ++ complesso, ma trunk Clang può già compilare LLVM stesso. Quindi mi chiedo se ci sono IDE LLVM in sviluppo o nelle versioni beta.

Sì, posso usare Clang come altro compilatore con IDE compatibili con GCC. Ma esiste qualche IDE integrato con Clang? Clang ha un formato di output diverso, quindi l'IDE deve analizzarlo. Clang può fornire l'analisi IDE delle sorgenti. Clang ha un'opzione di analisi, che deve essere supportata in un IDE. Dai un'occhiata, ad es http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

E la caratteristica più ricercata di Clang - è l'auto-completamento intelligente, quindi l'IDE può suggerire solo varianti corrette dalla sintassi, ad esempio elencare solo i campi di questa struttura, classe.

Risultati: (uniti dalle risposte):


3
Mi chiedo se in futuro Emacs ottenga il supporto per Clang. A proposito, c'è una modalità minore di emacs qui llvm.org/svn/llvm-project/cfe/trunk/utils/… anche se non l'ho testata io stesso.
ustun

Code :: Blocks funziona con Clang.
James Harper

Risposte:


59

LLVM è supportato in Eclipse CDT tramite plug-in ( llvm4eclipsecdt ). È l' unico IDE supportato da Windows che supporta LLVMPer quanto ne so, . Sono l'autore principale del plug-in, quindi puoi porre qualsiasi domanda ad esso correlata.

Il plug-in offre le funzionalità di base per la compilazione Clang e llvm-gcc e supporta Linux e Windows (con Cygwin e MiNGW). Gli strumenti LLVM come assembler, archiver, linker e static compiler (llc) sono configurati e possono essere personalizzati tramite l'interfaccia utente. Il plug-in offre tutti i vantaggi che IDE può offrire, come una facile configurazione e creazione con un'unica azione.

L'unico inconveniente è che non è ancora pronto in quanto manca di alcune delle funzionalità avanzate che LLVM può offrire come l'analisi Clang e l'auto-completamento intelligente. Anche il plug-in non è stato testato bene e potrebbe non funzionare perfettamente, quindi spero di poter ottenere il feedback degli utenti tramite la mailing list trovata dal sito di sviluppo del codice di Google (elencato di seguito). Vorrei avere tempo per svilupparlo ulteriormente. Lo sviluppo solo nel tempo libero, che è molto limitato. Accolgo con favore qualsiasi sviluppatore a partecipare e contribuire al progetto.

Sito di sviluppo:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Mercato Eclipse (100% gratuito e open source):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

AGGIORNAMENTO: Il plugin è deprecato. Invece installa "C / C ++ LLVM-Family Compiler Build Support" in Linguaggi di programmazione utilizzando il sito di aggiornamento ufficiale di Eclipse, ad esempio http://download.eclipse.org/releases/mars


Ciao. Sono contento di vederti qui! Dici "I binari MinGW sono forniti per LLVM e front-end" - puoi aggiungere (qui o sul sito Google-code) un collegamento ai binari mingw di LLVM?
osgx

1
Inoltre, sulla tesi dal tuo blog. clang non è per ada o fortran: "Per altri linguaggi, inclusi Java, Fortran e Ada, LLVM rimane dipendente da GCC"
osgx

2
Puoi ottenere i binari mingw per LLVM 2.9 da qui: llvm.org/releases/download.html#2.9
Petri Tuononen

1
Nota positiva: hai ragione sul fatto che LLVM-GCC è per altre lingue. Avrei dovuto scrivere che "LLVM compila" senza menzionare alcun front-end specifico, ma rimuoverò Fortran e Ada dall'abstract.
Petri Tuononen

Puoi anche integrare il compilatore LLVM con Microsoft VS. Ecco il link llvm.org/docs/GettingStartedVS.html . spero che questo ti aiuti.
Krishna Oza

21

Il collaboratore di LLVM Dan Gohman ha recentemente aggiunto il completamento del codice Clang a vim .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc è destinato allo sviluppo di LLVM stesso e aiuta con lo stile di codifica LLVM, ma la parte di completamento del codice dovrebbe essere abbastanza facile da estrarre .

Sì, sì, vim non è un IDE, ma potrebbe essere utile saperlo.

[modifica] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el fornisce un'opzione simile per emacs .


11

Qt Creator funziona anche con Clang ...


Grazie, aggiunto alla domanda. Puoi dire da quale versione di QTcreator c'è il supporto di clang?
osgx

1
2.4.1 andrebbe bene ... su Linux, non è necessario aggiungere manualmente la catena di strumenti clang .. ecco le informazioni su come aggiungere la catena di strumenti se stai usando Windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu,

ma lo utilizza solo per il completamento automatico e l'analisi
James Harper


5

Non ce n'è uno per Windows. Ma se vuoi un completamento automatico intelligente, netbeans ha uno dei migliori completamenti del codice per C ++. Analizza macro, contenitori generici e puntatori intelligenti. Inoltre fornisce refactoring, inserimento di codice di costruttori e getter e setter. Funziona davvero bene. Tuttavia, poiché utilizza ancora un parser separato per C ++, non rileva tanti errori quanti ne fa il compilatore.

Netbeans per java è integrato nel compilatore, quindi fornisce errori e avvisi durante la digitazione, oltre al completamento del codice sintatticamente corretto. Quindi, netbeans molto probabilmente in futuro si integrerà con clang per fornire lo stesso tipo di funzionalità per C ++.


2
come fa netbeans ad analizzare la fonte? Quale frontend C / C ++ utilizza?
osgx

3
Sì, netbeans analizza la sorgente stessa per il completamento del codice. Forse in futuro useranno clang per l'analisi, ma non è stato ancora integrato. Puoi selezionare diversi compilatori per netbeans gcc o clang. Non l'ho ancora provato con il clang.
Paul Fultz II



4

Posso aggiungere SublimeText 2? Ha già un plugin SublimeClang che supporta il completamento del codice intelligente basato sul clang.


Informazioni sul plug-in: "fornisce suggerimenti di completamento automatico per C / C ++ / ObjC / ObjC ++. Opzionalmente analizzerà anche il codice mentre viene digitato e mostrerà errori e avvisi".
osgx

INTERROTTO
Johan Boulé



3

Clang ha un driver che (almeno dovrebbe essere) un sostituto diretto di gcc, quindi essenzialmente qualsiasi IDE che può usare gcc come compilatore dovrebbe essere in grado di usare clang anche come compilatore (sebbene non l'ho testato personalmente, quindi non posso davvero garantire per quanto bene funzioni).


1
Ma non sarà in grado di utilizzare alcuna funzionalità aggiuntiva al set di strumenti standard, come l'analisi del codice e il completamento con tabulazioni.
Mooing Duck

3

No.

Solo xcode ha un supporto minimo per il clang attualmente. Se vuoi usare l'analisi statica clang su Windows dovrai farlo tramite la CLI.


6
Questo tipo di risposta / domande dovrebbe avere un timeout .. (meta topic)
Hernán Eche

Hernán Eche, sì, ma posso modificare la risposta accettata in qualsiasi momento. Puoi chiedermi se ritieni che la situazione sia cambiata e la risposta è "Sì"
osgx

3

KDevelop per Windows è un'altra opzione. Sebbene sia ancora nelle fasi iniziali (attualmente è necessario configurare l'ambiente per poter utilizzare i compilatori MSVC / MinGW da soli), è utilizzabile e porta la straordinaria comprensione del codice dell'IDE su Windows.

https://www.kdevelop.org/features


1

Non proprio un IDE, ma una specie di crossover tra IDE e semplice editor, un'alternativa utilizzabile per coloro che non si preoccupano di scrivere configurazioni a mano: una combinazione di Sublime Text 3 editor e plug-in EasyClangComplete (più Clang Format per mantenere il tuo codice pulito e ordinato). Funziona bene su Windows grazie ai recenti sforzi per rendere LLVM compatibile con MSVC ( Clang-cl è anche in grado di generare file .PDB compatibili a partire dal 2018, che è cruciale per il debug).

Aggiornamento: a partire dal 2019, un'alternativa molto migliore ea prova di futuro a EasyClangComplete sta utilizzando Clangd tramite il plugin LSP .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.