Je veux étendre mes horizons de programmation à Linux. Un bon ensemble d'outils de base fiable est important, et quoi de plus basique qu'un IDE?
Je pourrais trouver ces sujets SO:
Je ne cherche pas un IDE léger . Si un IDE vaut de l'argent, alors je le paierai, donc il n'est pas nécessaire qu'il soit gratuit.
Ma question, alors:
Quel bon IDE de programmation C ++ est disponible pour Linux?
Les minimums sont assez standard: mise en évidence de la syntaxe, complétion du code (comme intellisense ou son équivalent Eclipse) et débogage intégré (par exemple, points d'arrêt de base).
Je l'ai cherché moi-même, mais il y en a tellement qu'il est presque impossible de séparer le bon des mauvais à la main, surtout pour quelqu'un comme moi qui a peu d'expérience en codage C ++ sous Linux. Je sais qu'Eclipse prend en charge C ++ , et j'aime vraiment cet IDE pour Java, mais est-ce bon pour C ++ et y a-t-il quelque chose de mieux?
Le deuxième article contient en fait de bonnes suggestions, mais ce qui me manque, c'est ce qui rend l'IDE suggéré si bon pour l'utilisateur, quels sont ses (dés) avantages?
Ma question devrait donc être:
Quel IDE proposez-vous (compte tenu de vos expériences), et pourquoi?
Réponses:
Initialement: confusion
Lors de l'écriture de cette réponse, j'avais récemment changé de Visual Studio (avec des années d'expérience) vers Linux et la première chose que j'ai faite a été d'essayer de trouver un IDE raisonnable. À l'époque, c'était impossible: aucun bon IDE n'existait.
Epiphanie: UNIX est un IDE. Tout. 1
Et puis j'ai réalisé que l'IDE sous Linux est la ligne de commande avec ses outils:
Selon vos besoins, vous devrez ensuite installer et configurer plusieurs plugins pour que l'éditeur fonctionne correctement (c'est la seule partie ennuyeuse). Par exemple, la plupart des programmeurs sur Vim bénéficieront du plugin YouCompleteMe pour l'autocomplétion intelligente.
Une fois cela fait, le shell est votre interface de commande pour interagir avec les différents outils - Débogueurs (gdb), Profilers (gprof, valgrind), etc. Vous configurez votre environnement de projet / build en utilisant Make , CMake , SnakeMake ou l'un des divers alternatives. Et vous gérez votre code avec un système de contrôle de version (la plupart des gens utilisent Git ). Vous utilisez également tmux (auparavant également screen) pour multiplexer (= pensez à plusieurs fenêtres / onglets / panneaux) et conservez votre session de terminal.
Le fait est que, grâce au shell et à quelques conventions d'écriture d'outils, tous s'intègrent les uns aux autres . Et de cette façon, le shell Linux est un environnement de développement véritablement intégré , complètement à égalité avec d'autres IDE modernes. (Cela ne signifie pas que les IDE individuels n'ont pas de fonctionnalités qui manquent à la ligne de commande, mais l'inverse est également vrai.)
À chacun son
Je ne peux pas surestimer la qualité du fonctionnement du flux de travail ci-dessus une fois que vous avez pris l'habitude. Mais certaines personnes préfèrent simplement les éditeurs graphiques, et depuis que cette réponse a été écrite à l'origine, Linux a acquis une suite d'excellents IDE graphiques pour plusieurs langages de programmation différents (mais pas, à ma connaissance, pour C ++). Essayez-les même si, comme moi, vous finissez par ne pas les utiliser. Voici juste une petite sélection biaisée:
Gardez à l'esprit que cette liste est loin d'être complète.
1 J'ai volé ce titre dans le commentaire de dsm.
2 Je parlais ici de Vim. Et bien que Vim simple soit toujours plus que capable, Neovim est un redémarrage prometteur, et il a modernisé quelques vieilles verrues.
la source
Mon préféré est l' IDE CodeLite 2.x.
voir: http://www.codelite.org
La décision d'utiliser CodeLite était basée sur une recherche concernant l'IDE C ++ suivant pour Linux:
Après tout ce que j'ai décidé d'utiliser CodeLite 2.x .
Ci-dessous, j'ai énuméré quelques avantages et inconvénients concernant les IDE C ++ mentionnés. Veuillez noter que cela ne reflète que mon opinion personnelle!
EDIT : quel dommage que SOF ne supporte pas les tableaux, donc je dois écrire dans les paragraphes ...
Eclipse Galileo avec plugin CDT
Avantages:
Les inconvénients:
NetBeans 6.7 (notez que c'est également la base de l'IDE SunStudio)
Avantages:
Les inconvénients:
KDevelop4 (note: je n'ai pas beaucoup testé dessus)
Avantages:
Les inconvénients:
CodeBlocks 8.02 (note: je n'ai pas fait beaucoup de tests dessus)
Avantages:
Les inconvénients:
CodeLite 2.x (remarque: c'est mon préféré)
Avantages:
Les inconvénients:
la source
Bientôt, vous constaterez que les IDE ne sont pas suffisants, et vous devrez tout de même apprendre la chaîne d'outils GCC (ce qui n'est pas difficile, du moins l'apprentissage des fonctionnalités de base). Mais pas de mal à réduire la douleur de transition avec les IDE, l'OMI.
la source
Une réponse rapide, juste pour ajouter un peu plus de connaissances à ce sujet:
vous devez absolument consulter NetBeans . Netbeans 6.7 présente les fonctionnalités suivantes:
Je pense que c'est une substitution Visual Studio parfaite (et bien meilleure) et un très bon outil pour apprendre le C / C ++.
Bonne chance!
la source
Au moins pour les projets spécifiques à Qt, le Qt Creator (de Nokia / Trolltech / Digia) est très prometteur.
la source
Ma première source était en fait les
man
pages des outils . Tapez simplementsur la ligne de commande (
$
voici une partie de l'invite, pas l'entrée).Selon la plate-forme, ils sont assez bien écrits et peuvent également être trouvés sur Internet. Dans le cas de
make
, j'ai lu la documentation complète qui a pris quelques heures. En fait, je ne pense pas que ce soit nécessaire ou utile dans la plupart des cas, mais j'avais quelques exigences spéciales dans mes premières affectations sous Linux qui nécessitaient un makefile sophistiqué. Après avoir écrit le makefile, je l'ai donné à un collègue expérimenté qui a apporté quelques modifications et corrections mineures. Après cela, je savais à peu prèsmake
.J'ai utilisé GVIM parce que j'avais une expérience préalable (mais pas beaucoup) là-bas, je ne peux rien dire du tout sur Emacs ou les alternatives. Je trouve que cela aide vraiment à lire le
.gvimrc
fichier de configuration d' autres personnes . Beaucoup de gens l'ont mis sur le Web. Voici le mien .N'essayez pas de maîtriser tous les binutils à la fois, il y a trop de fonctions. Mais obtenez un aperçu général pour savoir où chercher lorsque vous aurez besoin de quelque chose à l'avenir. Vous devez cependant connaître tous les paramètres importants pour
g++
etld
(l'outil de liaison de GCC qui est appelé automatiquement , sauf en cas d' empêchement explicitement).Mise en évidence de la syntaxe: oui, et bien meilleure que Visual Studio. La complétion de code: oui- ish . Tout d'abord, je dois admettre que je n'ai pas utilisé la complétion de code C ++ même dans Visual Studio car (par rapport à VB et C #) ce n'était pas assez bon. Je ne l'utilise pas souvent maintenant mais néanmoins, GVIM a un support de complétion de code natif pour C ++. Combiné avec la bibliothèque ctags et une liste de balises de type plug-in, c'est presque un IDE.
En fait, ce qui m'a permis de commencer, c'est un article d'Armin Ronacher. Avant de lire le texte, regardez les captures d'écran à la fin!
Oui. Mais c'est la même chose pour Visual Studio, n'est-ce pas (je n'ai jamais utilisé Whole Tomato)? Bien sûr, la mise en évidence de la syntaxe vous montrera des crochets qui ne correspondent pas mais c'est à peu près tout.
J'utilise
gdb
ce qui est un outil en ligne de commande. Il y a aussi une interface graphique appeléeDDD
.gdb
est un outil de débogage moderne et peut faire tout ce que vous pouvez faire dans un IDE. La seule chose qui m'agace vraiment est de lire une trace de pile car les lignes ne sont pas en retrait ou formatées, il est donc très difficile de scanner les informations lorsque vous utilisez beaucoup de modèles (ce que je fais). Mais ceux-ci encombrent également la trace de la pile dans les IDE.Vous ne devriez même pas essayer de comparer un éditeur moderne et complet comme Emacs ou GVIM au Bloc-notes. Le bloc-notes est un
TextBox
contrôle embelli , et cela fait vraiment toute la différence. De plus, travailler sur la ligne de commande est une expérience très différente sous Linux et Windows. Windowscmd.exe
est gravement paralysé. PowerShell est bien meilleur./ EDIT: Je devrais mentionner explicitement que GVIM a une édition par onglets (comme dans la navigation par onglets, pas les tabulations contre les espaces)! Il m'a fallu beaucoup de temps pour les trouver, bien qu'ils ne soient pas du tout cachés. Tapez simplement
:tabe
au lieu de plain:e
lorsque vous ouvrez un fichier ou en créez un nouveau, et GVIM créera un nouvel onglet. La commutation entre les onglets peut être effectuée à l'aide du curseur ou de plusieurs raccourcis différents (selon la plateforme). La clégt
(type g, puis ten mode commande) devrait fonctionner partout, et passer à l'onglet suivant ou à l'onglet no. n si un nombre a été donné. Tapez:help gt
pour obtenir plus d'aide.la source
clang_complete
plugin maintenant. Cette réponse date de 2009 et certaines parties sont obsolètes. Mais il y a eu des améliorations de tous les côtés, donc cela se stabilise plus ou moins.Sans répéter une réponse, mais je pense que je peux en ajouter un peu plus.
Slickedit est un excellent IDE.
Il supporte bien les grandes bases de code sans ralentir ni passer tout son temps à indexer. (C'est un problème que j'ai eu avec le cdt d'Eclipse). La vitesse de Slickedit est probablement la meilleure chose à ce sujet, en fait.
L'achèvement du code fonctionne bien et il existe une grande quantité d'options pour des choses comme le formatage automatique, l'embellissement et la refactorisation.
Il a un débogage intégré.
Il a un support de plug-in et une communauté assez active pour les créer.
En théorie, vous devriez être en mesure de bien vous intégrer aux gens qui font les trucs traditionnels de makefile, car cela vous permet de créer un projet directement à partir d'un seul, mais cela n'a pas fonctionné aussi bien que j'aurais aimé quand je l'ai essayé.
En plus de Linux, il existe des versions Mac et Windows, si vous en avez besoin.
la source
En tant qu'ancien gars UNIX, j'utilise toujours Emacs. Mais cela a une courbe d'apprentissage assez abrupte et longue, donc je ne suis pas sûr de pouvoir le recommander aux nouveaux arrivants.
Il n'y a vraiment pas de "bon" IDE pour Linux. Eclipse n'est pas très bon pour C / C ++ (CDT s'améliore, mais n'est pas encore très utile). Les autres n'ont pas toutes les fonctionnalités que vous allez rechercher.
Il est vraiment important d'apprendre comment fonctionnent tous les outils individuels (gcc, make, gdb, etc.). Après cela, vous pouvez trouver la manière de faire Visual Studio très limitative.
la source
Checkout Netbeans, il est écrit en Java, vous aurez donc le même environnement quel que soit votre système d'exploitation, et il prend en charge bien plus que le simple C ++.
Je ne vais pas essayer de vous convaincre, car je pense que les IDE peuvent être un choix très personnel. Pour moi, il améliore ma productivité en étant rapide, en prenant en charge les langues dans lesquelles je code et possède les fonctionnalités standard que vous attendez d'un IDE.
la source
Juste un suivi rapide pour cette question ...
Cela fait un mois que j'ai commencé à utiliser Vim comme mon principal outil "GUI" pour programmer C ++ sous Linux. Au début, la courbe d'apprentissage était en effet un peu abrupte, mais après un certain temps et avec les bonnes options activées et les scripts en cours d'exécution, j'ai vraiment compris!
J'adore la façon dont vous pouvez façonner Vim pour répondre à vos besoins; il suffit d'ajouter / de modifier les mappages de touches et Vim est transformé en un «IDE» hautement productif.
La chaîne d'outils pour construire et compiler un programme C ++ sur Linux est également très intuitive. make et g ++ sont les outils que vous utiliserez.
Le débogueur ddd n'est cependant pas vraiment bon, mais c'est peut-être parce que je n'ai pas eu le temps de le maîtriser correctement.
Donc, pour quiconque est, ou recherchait un bon IDE C ++ sous Linux, tout comme moi, votre meilleur pari repose sur les outils standard disponibles sous Linux lui-même (Vim, g ++, ddd) et vous devriez vraiment au moins essayer d'utiliser avant de chercher autre chose ...
Enfin et surtout, je veux vraiment remercier konrad pour sa réponse ici, cela m'a vraiment aidé à trouver mon chemin dans l'environnement de développement Linux, merci!
Je ne ferme pas non plus cette question, donc les gens peuvent encore réagir ou peut-être même ajouter de nouvelles suggestions ou des ajouts aux réponses déjà vraiment sympas ...
la source
Je vous recommande de lire The Art Of UNIX Progranmming . Cela vous aidera à utiliser l'environnement comme votre IDE.
la source
La réponse la plus courte est: choisir "l'éditeur" que vous aimez, puis utiliser la console GDB ou un simple frontal GDB pour déboguer votre application. Les débogueurs sont livrés avec des IDE sophistiqués tels que Netbeans craint pour C / C ++. J'utilise Netbeans comme éditeur et la console Insight et GDB comme débogueur.
Avec un aperçu, vous avez une belle interface graphique et la puissance brute de GDB.
Dès que vous vous habituerez aux commandes GDB, vous commencerez à l'adorer car vous pouvez faire des choses que vous ne pourrez jamais faire en utilisant une interface graphique. Vous pouvez même utiliser Python comme langage de script si vous utilisez GDB 7 ou une version plus récente.
La plupart des gens ici ont prêté plus d'attention aux «éditeurs» des IDE. Cependant, si vous développez un grand projet en C / C ++, vous pourriez facilement passer plus de 70% de votre temps sur les "débogueurs". Les débogueurs des IDE sophistiqués ont au moins 10 ans de retard sur Visual Studio. Par exemple, Netbenas a des interfaces très similaires avec Visual Studio. Mais son débogueur présente un certain nombre d'inconvénients par rapport à Visual Studio.
La liste peut être beaucoup plus longue.
J'étais tellement frustré par les inconvénients des Netbeans ou d'autres IDE similaires, alors j'ai commencé à apprendre GDB lui-même. J'ai trouvé que GDB lui-même est très puissant. GDB n'a pas tous les "inconvénients" mentionnés ci-dessus. En fait, GDB est très puissant, c'est encore mieux que Visual Studio à bien des égards. Ici, je vous montre juste un exemple très simple.
Par exemple, vous avez un tableau comme:
Lorsque votre application s'arrête et que vous souhaitez examiner les données dans IdAndValues. Par exemple, si vous souhaitez trouver les ordinaux et les valeurs dans le tableau pour un "ID" particulier, vous pouvez créer un script comme celui-ci:
Vous pouvez utiliser toutes les variables de votre application dans le contexte actuel, vos propres variables (dans notre exemple, c'est $ i), les arguments passés (dans notre exemple, c'est $ arg0) et toutes les commandes GDB (intégrées ou définies par l'utilisateur) ).
Utilisez PrintVal 1 à partir de l'invite GDB pour imprimer les valeurs de l'ID "1"
Soit dit en passant, NetBeans est livré avec une console GDB, mais en utilisant la console, vous pouvez planter Netbeans. Et je crois que c'est pourquoi la console est cachée par défaut dans NetBeans
la source
J'utilise " Geany " trouvé jusqu'ici bien, son IDE rapide et léger.
Parmi les fonctionnalités de Geany figurent :
la source
Si vous aimez Eclipse pour Java, je suggère Eclipse CDT. Bien que le support C / C ++ ne soit pas aussi puissant que pour Java, il offre toujours la plupart des fonctionnalités. Il a une belle fonctionnalité nommée Managed Project qui facilite le travail avec les projets C / C ++ si vous n'avez pas d'expérience avec Makefiles. Mais vous pouvez toujours utiliser Makefiles. Je fais du codage C et Java et je suis vraiment content de CDT. Je suis en train de développer le firmware pour un appareil embarqué en C et une application en Java qui parle à cet appareil, et c'est vraiment sympa d'utiliser le même environnement pour les deux. Je suppose que cela me rend probablement plus productif.
la source
J'adore la façon dont les gens manquent complètement la demande dans la question d'origine pour un IDE. Linux n'est PAS un IDE. Ce n'est tout simplement pas ce que ces mots signifient. J'ai appris le c et le c ++ en utilisant vi et gcc et make, et je ne dis pas que ce ne sont pas des outils adéquats, mais ce n'est PAS un IDE. Même si vous utilisez des outils plus élaborés comme vim ou emacs ou tout autre éditeur de fantaisie que vous souhaitez, taper des commandes sur une ligne de commande n'est pas un IDE.
De plus, vous savez tous que make existe dans le cadre de Visual Studio, n'est-ce pas? L'idée qu'un IDE "limite" est tout simplement stupide si vous pouvez utiliser l'IDE pour accélérer certaines choses, tout en étant capable de vous rabattre sur les commandes en ligne de commande en cas de besoin.
Cela dit, je suggère, comme plusieurs l'ont fait ci-dessus, d'essayer les blocs de code. Sa mise en évidence du code est décente, un moyen assez facile de créer un projet, de le coder, de l'exécuter, etc., qui est le cœur d'un véritable IDE, et semble assez stable. Le débogage craint ... Je n'ai jamais vu un débogueur interactif décent dans aucune variante linux / unix. gdb n'est-ce pas. Si vous êtes habitué au débogage de style studio visuel, vous n'avez pas de chance.
Quoi qu'il en soit, je vais emballer mes affaires, je sais que la foule Linux à vue unique criera cela et me chassera de la ville en un rien de temps.
la source
make + vim + gdb = un grand IDE
la source
J'aime bien l' IDE d' Ultimate ++ . Il a des fonctionnalités qui ont été conçues pour être utilisées avec leur propre bibliothèque (qui, BTW, est une très bonne boîte à outils si vous ne voulez pas acheter sur GTK + ou QT) mais cela fonctionne parfaitement avec les projets C ++ généraux. Il fournit une exécution décente du code, une bonne coloration de la syntaxe, un débogage intégré et toutes les autres fonctionnalités prises en charge par la plupart des IDE modernes.
la source
Je suggère vraiment des blocs de code . Ce n'est pas aussi lourd qu'Eclipse et il a le support de projet Visual Studio.
la source
Peut-être que le projet d'outils Linux pour Eclipse pourrait répondre à vos besoins?
la source
Sous Linux, il existe de nombreux IDE:
D'après mon expérience, les plus précieux sont Eclipse et Qt Creator . Les deux fournissent toutes les fonctionnalités "standard" (c'est-à-dire la saisie semi-automatique, la coloration syntaxique, le débogueur, l'intégration git). Il convient de noter qu'Eclipse fournit également des fonctionnalités de refactoring, tandis que Qt Creator fournit une intégration avec Valgrind et une prise en charge du déploiement sur des cibles distantes.
De plus, l' IDE CLion commercial semble très bon (mais je ne l'ai pas beaucoup utilisé).
la source
J'entends qu'Anjuta est assez lisse pour les utilisateurs de Gnome. J'ai joué un peu avec KDevelop et c'est sympa, mais en quelque sorte il manque de fonctionnalités. Code :: Blocks est également très prometteur, et je préfère celui-là.
la source
Sun Studio version 12 est un téléchargement gratuit (support gratuit et payant disponible) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .
Je suis sûr que vous disposez de la complétion de code et du support du débogage, y compris le support des plugins dans cet IDE.
Sun Studio est disponible pour Linux ainsi que Solaris. forums: http://developers.sun.com/sunstudio/community/forums/index.jsp . Forums Sun Studio Linux: http://forum.sun.com/forum.jspa?forumID=855
Je serai impatient d'entendre vos commentaires sur cet outil.
BR,
~ A
la source
J'ai déjà utilisé Ultimate ++ IDE et c'est plutôt bon.
la source
Je suis plutôt d'accord, mais le problème est aussi celui de la perception: nous oublions à quel point il était difficile de devenir productif dans n'importe quel IDE (ou autre environnement) choisi. Je trouve les IDE (Visual Studio, NetBeans, Eclipse) incroyablement lourds à bien des égards.
J'appuierais cela; utiliser Emacs comme mon éditeur principal sur Linux et sur MSW (XP2, W2K). Je ne serais pas d'accord pour dire qu'il a une courbe d'apprentissage abrupte , mais je dirais qu'en raison du grand nombre de fonctionnalités, il a une longue courbe d'apprentissage. Vous pouvez être productif en peu de temps, mais si vous le souhaitez, vous pouvez en apprendre de nouvelles fonctionnalités pour les années à venir.
Cependant - ne vous attendez pas à ce que toutes les fonctionnalités d'Emacs soient disponibles dans les menus déroulants, il y a juste trop de fonctionnalités pour les trouver.
Comme je l'ai mentionné, j'utilise GNU Emacs sur MSW depuis des années. Et cela a toujours bien fonctionné avec Visual Studio jusqu'à ce que je «mette à niveau» vers 2008; maintenant, il retarde parfois plusieurs secondes avant d'actualiser les fichiers du disque. La principale raison de l'édition dans la fenêtre VS est la fonction de complétion de code "Intellisense".
la source
geany je recommande
la source
Bien que j'utilise Vim, certains de mes collègues utilisent SlickEdit qui a l'air plutôt bien. Je ne suis pas certain du débogage intégré car nous ne serions pas en mesure de le faire sur notre projet particulier de toute façon.
SlickEdit a un bon support pour naviguer dans de grandes bases de code, avec des références croisées et des sauts de balises. Bien sûr, il contient également des éléments de base comme la mise en évidence de la syntaxe et la complétion de code.
la source
J'utilise Eclipse CDT et Qt Creator (pour les applications Qt).
Voilà mes préférences. C'est une question très suggestive et il y a autant de réponses qu'il y a de développeurs. :)
la source
SlickEdit. J'utilise et j'adore SlickEdit depuis 2005, à la fois sur Windows et sur Linux. J'ai également de l'expérience dans Visual Studio (5, 6, 2003, 2005) et uniquement avec Emacs et la ligne de commande. J'utilise SlickEdit avec des makefiles externes, certains de mes coéquipiers utilisent SlickEdit, d'autres utilisent Emacs / vi. Je n'utilise pas le débogueur intégré, le contrôle de version intégré, le système de build intégré: je trouve généralement trop d'intégration pour être vraiment pénible. SlickEdit est robuste (très peu de bugs), rapide et intuitif. C'est comme une voiture allemande, une voiture de conducteur.
Les dernières versions de SlickEdit semblent offrir de nombreuses fonctionnalités qui ne m'intéressent pas, je crains un peu que le produit ne se gonfle et ne se dilue à l'avenir. Pour l'instant (j'utilise la V13.0) c'est super.
la source
Pour moi, Ultimate ++ semble être la meilleure solution pour écrire un programme cross-os
la source
Si vous utilisiez vim depuis longtemps, vous devriez en faire votre IDE. Il y a beaucoup d'addons disponibles. J'en ai trouvé plusieurs assez utiles, et je les ai compilées ici, jetez-y un œil.
Et beaucoup plus dans la série de trucs et astuces vi / vim là-bas.
la source