KDevelop Tour d'horizon et retour d'exp riences...
Transcript of KDevelop Tour d'horizon et retour d'exp riences...
KDevelopTour d’horizon et retour d’expériences (C++)
2e rencontre DevelopR625 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.0Complè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èmeEcosystème naturel
Développement en C++ sous Linux/KDE
Mais aussi . . .
15 langages supportés
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 langagesAda, 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 deparenthè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
SGVcvs
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 dedocumentation
Doxygen pour C++
F. Langrognet () KDevelop Mars 2010 11 / 27
Fonctionnalités (5)
Kits de développement
QT (QT Designer, QT Linguist)GTKwxWidgetssuperwaba
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
Quelques améliorations (parmi d’autres)
Nouveau langage : C#
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 KDevelopMixmod/KDevelop
Logiciel de classification de données
Ecrit en C++ (et avec QT)
Développé sous Linux
Distribué pour Linux, Windows
EditionDebuggercmakeValgrindKCacheGrind(SVN)(Doxygen)
F. Langrognet () KDevelop Mars 2010 20 / 27
Utilisation de cmake
cmake
cmake -> KDevelopcmake . -GKDevelop3Possibilité de créer des projets CodeBlocks, Eclipse CDT
KDevelop -> cmakeConfiguration de cmake depuis KDevelop
F. Langrognet () KDevelop Mars 2010 21 / 27
Utilisation de valgrindValgrind
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 kCachegrindKCachegrind
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 diversQT, WxWidgets, . . .
Edition de texte, navigation classes,fichiers de grande qualité (KDevelop4)
Debugger performant
Projet actif et pérenne
Utilisation sous Windows,MacOS très marginale
Cross compilation ?
Création de package ?
F. Langrognet () KDevelop Mars 2010 26 / 27
KDevelopR6
FIN
Merci de votre attention
Florent Langrognet
F. Langrognet () KDevelop Mars 2010 27 / 27