KDevelop Tour d horizon et retour d expériences (C++) 2e rencontre DevelopR6 25 mars 2010 F. Langrognet F. Langrognet () KDevelop Mars 2010 1 / 27
PLAN 1 Introduction 2 Principales fonctionnalités 3 KDevelop 4 4 Cas pratique - utilisation d outils intégrés à KDevelop 5 Alternatives à KDevelop - Conclusion F. Langrognet () KDevelop Mars 2010 2 / 27
PLAN 1 Introduction 2 Principales fonctionnalités 3 KDevelop 4 4 Cas pratique - utilisation d outils intégrés à KDevelop 5 Alternatives à KDevelop - Conclusion F. Langrognet () KDevelop Mars 2010 3 / 27
Historique Historique 1998 : Mise en place du projet KDevelop Objectif : bâtir un IDE pour KDE facile à utiliser Langage : uniquement C/C++ 2001 : KDevelop 2.0 2004 : KDevelop 3.0 (complètement réécrit) Langages supportés : C++, Java, Python, PHP,... Plugins 1er mai 2010 : KDevelop 4.0.0 Complètement réécrit - encore! Beaucoup de nouveautés et fonctionnalités améliorées Version 3.9.95 (ubuntu 9.10) : disponible uniquement pour le C++ F. Langrognet () KDevelop Mars 2010 4 / 27
Ecosystème Ecosystème naturel Développement en C++ sous Linux/KDE 15 langages supportés Mais aussi... Version windows (cygwin) et Mac OS F. Langrognet () KDevelop Mars 2010 5 / 27
PLAN 1 Introduction 2 Principales fonctionnalités 3 KDevelop 4 4 Cas pratique - utilisation d outils intégrés à KDevelop 5 Alternatives à KDevelop - Conclusion F. Langrognet () KDevelop Mars 2010 6 / 27
Aperçu des fonctionnalités Langages / Fonctionnalités F. Langrognet () KDevelop Mars 2010 7 / 27
Fonctionnalités (1) Présentation des fonctionnalités de KDevelop 3.5.3 (et... 4.0) 15 langages Ada, C, C++, Objective-C, SQL, Fortran, Haskell, Java, PHP, Pascal, Perl, Python, Ruby, Bash Construction de projet autotools qmake cmake ant (java) F. Langrognet () KDevelop Mars 2010 8 / 27
Fonctionnalités (2) Edition (texte/classes) Coloration syntaxique Indentation automatique Complétion automatique Aide à l ouverture/fermeture de parenthèses, accolades Utilisations de variables (KDevelop4) Aide à la création de classe Visualisation de classes : Classe mère, classes dérivées Membres privés, publics, protégés Liste des utilisations des méthodes/fonctions F. Langrognet () KDevelop Mars 2010 9 / 27
Fonctionnalités (3) Editeur d IHM QT Designer SGV cvs svn perforce clearcase git (KDevelop4) mercurial (KDevelop4) F. Langrognet () KDevelop Mars 2010 10 / 27
Fonctionnalités (4) Debugger Points d arrêts conditionnels Liste d appel Etat des variables Génération automatique de documentation Doxygen pour C++ F. Langrognet () KDevelop Mars 2010 11 / 27
Fonctionnalités (5) Kits de développement QT (QT Designer, QT Linguist) GTK wxwidgets superwaba GBA Développement de plugins KDE Kate KFile Konqueror Noatun... KDevelop F. Langrognet () KDevelop Mars 2010 12 / 27
PLAN 1 Introduction 2 Principales fonctionnalités 3 KDevelop 4 4 Cas pratique - utilisation d outils intégrés à KDevelop 5 Alternatives à KDevelop - Conclusion F. Langrognet () KDevelop Mars 2010 13 / 27
KDevelop4 Nouveau langage : C# Quelques améliorations (parmi d autres) Nouveaux SGV (décentralisés) : git mercurial bazaar Tests CppUnit, QTest Edition (coloration, navigation dans les classes,... ) F. Langrognet () KDevelop Mars 2010 14 / 27
KDevelop4 - Edition (1) Coloration syntaxique F. Langrognet () KDevelop Mars 2010 15 / 27
KDevelop4 - Edition (2) Complétion automatique F. Langrognet () KDevelop Mars 2010 16 / 27
KDevelop4 - Edition (3) Information contextuelle F. Langrognet () KDevelop Mars 2010 17 / 27
KDevelop4 - Edition (4) Edition de classes, navigation F. Langrognet () KDevelop Mars 2010 18 / 27
PLAN 1 Introduction 2 Principales fonctionnalités 3 KDevelop 4 4 Cas pratique - utilisation d outils intégrés à KDevelop 5 Alternatives à KDevelop - Conclusion F. Langrognet () KDevelop Mars 2010 19 / 27
Développement de Mixmod avec KDevelop Mixmod/KDevelop Logiciel de classification de données Ecrit en C++ (et avec QT) Développé sous Linux Distribué pour Linux, Windows Edition Debugger cmake Valgrind KCacheGrind (SVN) (Doxygen) F. Langrognet () KDevelop Mars 2010 20 / 27
Utilisation de cmake cmake cmake -> KDevelop cmake. -GKDevelop3 Possibilité de créer des projets CodeBlocks, Eclipse CDT KDevelop -> cmake Configuration de cmake depuis KDevelop F. Langrognet () KDevelop Mars 2010 21 / 27
Utilisation de valgrind Valgrind Outil d analyse dynamique de code C++ (comme Purify) Utilisation de valeurs ou de pointeurs non initialisés Accès à des zones mémoire libérées ou non allouées Libération à tort d une zone mémoire (ex : 2 delete d une même zone) Non libération de mémoire allouée Passage d arguments invalides à certaines fonctions de la librairie standard F. Langrognet () KDevelop Mars 2010 22 / 27
Utilisation de kcachegrind KCachegrind Navigateur pour les données produites par des outils de profilage F. Langrognet () KDevelop Mars 2010 23 / 27
PLAN 1 Introduction 2 Principales fonctionnalités 3 KDevelop 4 4 Cas pratique - utilisation d outils intégrés à KDevelop 5 Alternatives à KDevelop - Conclusion F. Langrognet () KDevelop Mars 2010 24 / 27
Et si l on partait des besoins? Un IDE pour C++ Critères de choix : Gratuit, Payant Linux, Windows Fonctionnalités : complétion de code, gestionnaire de version, debugger,... F. Langrognet () KDevelop Mars 2010 25 / 27
Conclusion KDevelop IDE très complet Nombreux outils pour le C++ valgrind, KCacheGrind, Doxygen,... Création facile de projets divers QT, WxWidgets,... Edition de texte, navigation classes, fichiers de grande qualité (KDevelop4) Debugger performant Utilisation sous Windows, MacOS très marginale Cross compilation? Création de package? Projet actif et pérenne F. Langrognet () KDevelop Mars 2010 26 / 27
KDevelopR6 FIN Merci de votre attention Florent Langrognet F. Langrognet () KDevelop Mars 2010 27 / 27