kdevelop tour d'horizon et retour d'exp riences...

27
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

Upload: others

Post on 28-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

KDevelopTour d’horizon et retour d’expériences (C++)

2e rencontre DevelopR625 mars 2010

F. Langrognet

F. Langrognet () KDevelop Mars 2010 1 / 27

Page 2: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 3: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 4: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 5: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 6: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 7: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

Aperçu des fonctionnalités

Langages / Fonctionnalités

F. Langrognet () KDevelop Mars 2010 7 / 27

Page 8: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 9: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 10: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

Fonctionnalités (3)

Editeur d’IHM

QT Designer

SGVcvs

svn

perforce

clearCase

git (KDevelop4)

mercurial (KDevelop4)

F. Langrognet () KDevelop Mars 2010 10 / 27

Page 11: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 12: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 13: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 14: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 15: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

KDevelop4 - Edition (1)Coloration syntaxique

F. Langrognet () KDevelop Mars 2010 15 / 27

Page 16: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

KDevelop4 - Edition (2)

Complétion automatique

F. Langrognet () KDevelop Mars 2010 16 / 27

Page 17: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

KDevelop4 - Edition (3)Information contextuelle

F. Langrognet () KDevelop Mars 2010 17 / 27

Page 18: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

KDevelop4 - Edition (4)

Edition de classes, navigation

F. Langrognet () KDevelop Mars 2010 18 / 27

Page 19: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 20: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 21: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 22: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 23: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

Utilisation de kCachegrindKCachegrind

Navigateur pour les données produites par des outils de profilage

F. Langrognet () KDevelop Mars 2010 23 / 27

Page 24: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 25: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 26: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

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

Page 27: KDevelop Tour d'horizon et retour d'exp riences (C++)lmb.univ-fcomte.fr/IMG/pdf/2010_developr6_KDevelop_F_Langrognet.… · 1 Introduction 2 Principales fonctionnalités 3 KDevelop

KDevelopR6

FIN

Merci de votre attention

Florent Langrognet

F. Langrognet () KDevelop Mars 2010 27 / 27