LLVM C ++ IDE pour Windows

92

Existe-t-il un IDE C / C ++ pour Windows, qui est intégré au compilateur LLVM (et à l'analyseur Clang C / C ++), tout comme le fait Xcode moderne.

J'ai Dev-Cpp (il utilise GCC obsolète) et Code :: Blocks (avec quelques GCC). Mais GCC me donne des messages d'erreur très cryptiques. Je souhaite obtenir des messages d'erreur plus conviviaux à partir du frontend Clang.

Oui, Clang n'a pas pu être utilisé avec du code C ++ complexe, mais trunk Clang peut déjà compiler LLVM lui-même. Je me demande donc s'il existe des IDE LLVM en développement ou en version bêta.

Oui, je peux utiliser Clang comme autre compilateur avec des IDE compatibles GCC. Mais y a-t-il des IDE intégrés à Clang? Clang a un format de sortie différent, donc l'EDI doit l'analyser. Clang peut fournir une analyse IDE des sources. Clang a une option d'analyse, qui doit être prise en charge dans un IDE. Jetez un œil, par exemple http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Et la fonctionnalité la plus recherchée de Clang - est l'auto-complétion intelligente, de sorte que l'EDI ne peut suggérer que des variantes syntaxiquement correctes, par exemple ne lister que les champs de cette structure, classe.

Résultats: (fusionnés à partir des réponses):

osgx
la source
3
Je me demande si à l'avenir, Emacs gagnera du soutien pour Clang. Btw il y a un mode mineur emacs ici llvm.org/svn/llvm-project/cfe/trunk/utils/... bien que je ne l'ai pas testé moi-même.
ustun
Code :: Blocks fonctionne avec Clang.
James Harper

Réponses:

59

LLVM est pris en charge dans Eclipse CDT via un plug-in ( llvm4eclipsecdt ). C'est le seul IDE pris en charge par Windows prenant en charge LLVM pour autant que je sache. Je suis l'auteur principal du plug-in, vous pouvez donc poser toutes les questions qui s'y rapportent.

Le plug-in offre les fonctionnalités de base pour la compilation Clang et llvm-gcc et prend en charge Linux et Windows (avec Cygwin et MiNGW). Les outils LLVM tels que l'assembleur, l'archiveur, l'éditeur de liens et le compilateur statique (llc) sont configurés et peuvent être personnalisés via l'interface utilisateur. Le plug-in offre tous les avantages que l'EDI peut offrir, tels qu'une configuration et une construction faciles en une seule action.

Le seul inconvénient est qu'il n'est pas encore prêt car il ne dispose pas de certaines des fonctionnalités avancées que LLVM peut offrir, telles que l'analyse Clang et l'auto-complétion intelligente. Le plug-in n'est pas non plus bien testé et peut ne pas fonctionner parfaitement.J'espère donc pouvoir obtenir les commentaires des utilisateurs via la liste de diffusion trouvée sur le site de développement de code Google (répertorié ci-dessous). J'aurais aimé avoir le temps de le développer davantage. Je ne le développe que pendant mon temps libre, qui est très limité. Je souhaite la bienvenue à tous les développeurs pour qu'ils participent et contribuent au projet.

Site de développement:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Place de marché Eclipse (100% gratuite et open-source):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

MISE À JOUR: Le plugin est obsolète. Installez plutôt "C / C ++ LLVM-Family Compiler Build Support" sous Programming Languages ​​en utilisant le site officiel de mise à jour Eclipse, par exemple http://download.eclipse.org/releases/mars

Petri Tuononen
la source
Salut. Heureux de vous voir ici! Vous dites "Les binaires MinGW sont fournis pour LLVM et les front-end" - pouvez-vous ajouter (ici ou sur le site google-code) un lien vers les binaires mingw de LLVM?
osgx
1
Aussi, à propos de la thèse de votre blog. clang n'est pas pour ada ou fortran: "Pour les autres langages, y compris Java, Fortran et Ada, LLVM reste dépendant de GCC"
osgx
2
Vous pouvez obtenir les binaires mingw pour LLVM 2.9 à partir d'ici: llvm.org/releases/download.html#2.9
Petri Tuononen
1
Bonne note: vous avez raison, LLVM-GCC est pour d'autres langues. J'aurais dû écrire que "LLVM compile" sans aucune interface spécifique, mais je supprimerai Fortran et Ada du résumé.
Petri Tuononen
Vous pouvez également intégrer le compilateur LLVM avec Microsoft VS. Voici le lien llvm.org/docs/GettingStartedVS.html . J'espère que cela t'aides.
Krishna Oza
21

Le contributeur LLVM Dan Gohman a récemment ajouté la complétion de code Clang à vim .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc est destiné à être utilisé dans le développement de LLVM lui-même et aide avec le style de codage LLVM, mais la partie de complétion de code doit être assez facile à extraire .

Ouais, ouais, vim n'est pas un IDE, mais il peut être utile d'en savoir plus.

[modifier] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el fournit une option similaire pour emacs .

ohmantique
la source
11

Qt Creator fonctionne également avec Clang ...

Kokizzu
la source
Merci, ajouté à la question. Pouvez-vous dire, à partir de quelle version de QTcreator il y a le support de clang?
osgx
1
2.4.1 ferait l'affaire ... sous Linux, vous n'avez pas à ajouter manuellement la chaîne d'outils Clang .. voici les informations sur la façon d'ajouter la chaîne d'outils si vous utilisez Windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu
mais il ne l'utilise que pour l'auto-complétion et l'analyse
James Harper
9

Maintenant, ils ajoutent la prise en charge du lien Visual Studio . Il peut être téléchargé ici .

relaxxx
la source
5

Il n'y en a pas pour Windows. Mais si vous voulez une complétion automatique intelligente, netbeans possède l'une des meilleures complétions de code pour C ++. Il analyse les macros, les conteneurs génériques et les pointeurs intelligents. De plus, il fournit la refactorisation, l'insertion de code des constructeurs, des getters et des setters. Cela fonctionne vraiment bien. Cependant, comme il utilise toujours un analyseur distinct pour C ++, il ne détecte pas autant d'erreurs que le compilateur.

Netbeans pour java est intégré au compilateur, il émet donc des erreurs et des avertissements au fur et à mesure que vous tapez, ainsi que l'achèvement du code syntaxiquement correct. Ainsi, netbeans s'intégrera très probablement à l'avenir à clang pour fournir le même type de fonctionnalités pour C ++.

Paul Fultz II
la source
2
comment netbeans analyse-t-il la source? Quelle interface C / C ++ utilise-t-il?
osgx
3
Oui, netbeans analyse la source elle-même pour l'achèvement du code. Peut-être qu'ils utiliseront à l'avenir clang pour l'analyse, mais cela n'a pas encore été intégré. Vous pouvez sélectionner différents compilateurs pour netbeans gcc ou clang. Je n'ai pas encore essayé avec clang.
Paul Fultz II
5

La prise en charge de LLVM a été ajoutée à Eclipse : http://marketplace.eclipse.org/node/28778

Leo Hippeläinen
la source
2
Bien, mais l'auto-complétion de clang est-elle également intégrée à eclipse?
osgx
4

Puis-je ajouter SublimeText 2? Il dispose déjà d'un plugin SublimeClang qui prend en charge la complétion de code intelligente basée sur clang.

Hindol
la source
À propos du plugin: "Fournit des suggestions de saisie semi-automatique pour C / C ++ / ObjC / ObjC ++. Il analysera également le code au fur et à mesure qu'il est saisi et affichera les erreurs et les avertissements."
osgx
DISCONTINUED
Johan Boulé
1
EasyClangComplete pour Sublime 3 à la place.
lune ensoleillée
3

Clang a un pilote qui (au moins censé être) un substitut direct à gcc, donc essentiellement tout IDE qui peut utiliser gcc comme compilateur devrait également pouvoir utiliser clang comme compilateur (même si je ne l'ai pas testé personnellement, donc je ne peux pas vraiment garantir à quel point cela fonctionne).

Jerry Coffin
la source
1
Mais vous ne pourrez pas utiliser de fonctionnalités qui s'ajoutent à l'ensemble d'outils standard, telles que l'analyse de code et la complétion par tabulation.
Mooing Duck le
3

Non.

Seul xcode a actuellement un support minimal de clang. Si vous souhaitez utiliser l'analyse statique clang sur Windows, vous devrez le faire via la CLI.

Arelius
la source
6
Ce genre de réponses / questions devrait avoir un temps mort. (Méta-sujet)
Hernán Eche
Hernán Eche, oui, mais je peux changer la réponse acceptée à tout moment. Vous pouvez me demander si vous sentez que la situation a changé et la réponse est "Oui"
osgx
3

KDevelop pour Windows est une autre option. Bien qu'il n'en soit encore qu'à ses débuts (vous devez actuellement configurer l'environnement pour pouvoir utiliser vous-même les compilateurs MSVC / MinGW), il est utilisable et apporte la compréhension impressionnante du code de l'EDI à Windows.

https://www.kdevelop.org/features

kfunk
la source
1

Pas tout à fait un IDE, mais une sorte de croisement entre l'EDI et l'éditeur simple, une alternative utilisable pour ceux qui ne craignent pas d'écrire des configurations à la main: un combo de l' éditeur Sublime Text 3 et du plugin EasyClangComplete (plus le format Clang pour garder votre code net et rangé). Fonctionne bien sur Windows grâce aux efforts récents pour rendre LLVM compatible MSVC ( Clang-cl est également capable de générer des .PDB compatibles à partir de 2018, ce qui est crucial pour le débogage).

Mise à jour: À partir de 2019, une alternative bien meilleure et à l'épreuve du temps à EasyClangComplete consiste à utiliser Clangd via le plugin LSP .

lune ensoleillée
la source