Programmation C++ Utilisation de QtCreator pour la gestion de projet TD 0



Documents pareils
Tutoriel code::blocks

TP1. Outils Java Eléments de correction

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Programmation sous QT

Comment configurer Kubuntu

Le langage C. Séance n 4

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Introduction à Eclipse

Installation et compilation de gnurbs sous Windows

Quelques éléments de compilation en C et makefiles

Projet De Stijl Plate-forme pour robots mobiles

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Guide d installation de MySQL

Guide d utilisation 2012

[DEVELOPPEMENT SUR LA CIBLE 2440] 19 avril 2010

TP1 : Initiation à Java et Eclipse

Installation d OpenVPN

Gestion des documents avec ALFRESCO

1 Démarrage de Marionnet

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Environnements de développement (intégrés)

Eclipse atelier Java

TP1 : Initiation à l algorithmique (1 séance)

Comment se connecter au dossier partagé?

Guide d installation TV sur ordinateur Internet 3G+

Utilisez Toucan portable pour vos sauvegardes

Il est courant de souhaiter conserver à

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

0.1 Mail & News : Thunderbird

TP 1 Prise en main de l environnement Unix

wxwidgets dans un environnement Microsoft Windows

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Remise à niveau d un programme JAVA du domaine public

Manuel de l utilisateur

Algorithmique et Programmation, IMA

SurveyMonkey Un outil de sondage électronique. Objectifs

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Programmation C. Apprendre à développer des programmes simples dans le langage C

HAYLEM Technologies Inc.

Cours Langage C/C++ Programmation modulaire

Créer et partager des fichiers

WebSpy Analyzer Giga 2.1 Guide de démarrage

Manuel de System Monitor

Titre : Communiquer avec des formules mathématiques

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

Outils pour la pratique

Manuel d'installation de GESLAB Client Lourd

IFT Systèmes d exploitation - TP n 1-20%

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

Leçon N 5 PICASA Généralités

Installation / Sauvegarde Restauration / Mise à jour

TP1 - Prise en main de l environnement Unix.

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

< Atelier 1 /> Démarrer une application web

GUIDE D UTILISATION LE PRESENT DOCUMENT VISE A FACILITER LA PRISE EN MAIN DE L@GOON CLOUD. * Synchroniser votre entreprise

Mendeley, pour gérer sa bibliographie et la partager. Patricia Volland-Nail

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

TP1 : Initiation à Java et Eclipse

Guide Tenrox R8.7 de configuration de Microsoft Reporting Services

Manuel d Utilisation Nouvelle Plateforme CYBERLIBRIS : ScholarVox Management

LES BIBLIOTHEQUES DE WINDOWS 7

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

TD/TP 1 Introduction au SDK d Android

Organiser le disque dur Dossiers Fichiers

Utilisation de la Plateforme Office365 et d Oultlook Web App

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Installation LTE-SIM. Simulation du réseau 4G (LTE-SIM) en vue d optimiser les ressources spectrales de l opérateur.

GUIDE DE L UTILISATEUR Recoveo Récupérateur de données

Installation d un serveur de messagerie en local. Télécommunications & réseaux. Nom-prénom: Fiche contrat

TD séance n 2c Mise à jour des Systèmes

Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Builds et tests Utilisation de CMake et de Dart

Programmation système I Les entrées/sorties

Accès aux ressources informatiques de l ENSEEIHT à distance

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Gestion des Factures

Tutoriel. Votre site web en 30 minutes

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture IBM BladeCenter

Introduction : L accès à Estra et à votre propre espace Connexion Votre espace personnel... 5

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Guide Reseller Onbile

Guide d installation des licences Solid Edge-NB RB

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Website Express Créer un site professionnel avec Orange

PG208, Projet n 3 : Serveur HTTP évolué

Atelier Le gestionnaire de fichier

Installation d ORACLE 10g sous Debian Etch

Transcription:

Programmation C++ Utilisation de QtCreator pour la gestion de projet TD 0 B. Raymond and R. Pacanowski September 25, 2014 1 Motivation Ecrire dans un fichier hello_word.cpp, un programme qui affiche «Hello World!»dans la console. Pour ouvrir, une console cherchez l utilitaire nommé "Terminal" ou "Konsole". Pour écrire le programme utiliser un éditeur de texte simple tel que Kate, Gedit ou encore Sublime (s il est disponible). N oubliez pas d inclure (#include <...>) les en-têtes cstdlib et iostream, qui font partie de la bibliothèque standard du C++. 1.1 Compilation Dans un premier temps, nous ferons la compilation à la main. Nous utiliserons le compilateur GNU pour cela, qui fait partie de la GNU compiler collection (gcc). Bien que le programme gcc permette de compiler des fichiers C++, il n inclut pas automatiquement la bibliothèque standard du C++. Pour cela, il faut utiliser le programme g++ La commande pour compiler notre hello world est donc g++ -Wall -Werror -Wold-style-cast hello_world.cpp -o hello_world où hello_world.cpp est le fichier à compiler et hello_world est le nom du programme à générer. L option -Wall active tous les warnings et l option Werror transforme les warnings en erreurs, ce qui a pour effet d interrompre la compilation en cas de warnings Exécutez hello_world pour tester :./hello_world Cet exercice est terminé lorsque votre code compile sans aucun warning et que son execution est correcte. Tous les warnings peuvent être éliminés par de simples modifications du code. Il est important de le faire, car si on laisse traîner des warnings inoffensifs, on finit par ne plus voir les warnings pertinents, ce qui les rends totalement inutile! 2 QtCreator En pratique utiliser la ligne de commande pour compiler les gros projets devient rapidement ingérable à cause du nombre élevé de fichiers. Dès lors, on a recours à des systèmes (e.g., CMake, Make, Scons, ) de compilation. De plus, pour augmenter la productivité des éditeurs qui intégrent la compilation, le debugging et la réalisation d interface graphiques sont disponibles. Dans le cadre de ces TDs ainsi que pour votre module de projet en C++, nous avons choisi d utliser QtCreator. 1

QtCreator un outil de développement qui intégre de nombreuses fonctionnalités et permet de choisir, le système de gestion de compilation ainsi que le compilateur qui sera utilisé conjointement. De plus, il est gratuit et est disponible sur les principales plateformes (Windows, MacOS X, Linux). La Figure 1 vous présente l interface graphique de QtCreator lorsque vous le lancer. Figure 1 QtCreator à l ouverture 1 - Onglets principaux du programme. Edit pour taper le code, Debug pour le débugguer, Projects pour changer les options de compilation et d exécution et enfin Analyse pour lancer la détection de fuites mémoires. 2 - Permet de choisir entre la compilation en mode release ou debug. 3 - Permet d éxécuter le code en release (Ctrl+R). 4 - Permet d éxécuter le code en debug (F5). 5 - Permet de seulement compiler le code (Ctrl+B). 6 - Barre de recherche de fichiers ou d expressions régulières. 7 - Séléction des sorties : 1 - Issues : Affiche et permet de sélectionner rapidement les erreurs et les avertissements de la dernière compilation. 2 - Search Results : Affiche le résultat de la barre de recherche. 3 - Application Output : Affiche tous std::cout/std::cerr du programme. 4 - Compile Output : Affiche la sortie du programme de compilation. 3 Projets Dans QtCreator il est possible de gérer facilement de gros projets. Pour cela, il y a deux solutions QMake et Cmake. 2

3.1 Projet QMake Gestionnaire natif de Qt, il est complètement integré à QtCreator. Pour créer un projet QMake : "File", "New", "Qt gui Application". A la fin de la configuration, toutes les informations relatives aux fichiers sources, aux librairies et aux options de compilation sont présentes dans le fichier nom_du_projet.pro. 3.2 Projet CMake CMake est également un outil de gestion de projet. Il présente l avantage de ne pas être dépendant de Qt et de fonctionner sur un grand nombre de systèmes d exploitations. QtCreator gère également très bien les projets CMake : "C++ Project (CMake Compilation)". "File" "New" "Non-Qt Project" A la fin de la configuration, toutes les informations relatives au projet sont stockées dans le fichier CMakeLists.txt. 3.3 Travail à la maison avec QtCreator Quelque soit la plateforme (Windows, MacOS, Unix) la solution la plus simple afin d installer Qt et QtCreator est d aller sur la page d installation Qt : http://qt-project.org/downloads et de cliquer sur "Download Here". Télécharger la version "Community"de Qt qui est gratuite. 3.4 Travail à la maison sans QtCreator Sous Ubuntu/Debian: Pour installer Qmake : Installation sous ubuntu/debian : sudo apt get i n s t a l l qt5 qmake Compilation et Exécution : mkdir b u i l d cd b u i l d qmake [ Emplacement du f i c h i e r. pro ] make. / [Nom du f i c h i e r e x e c u t a b l e ] Pour installer CMake: sudo apt get i n s t a l l cmake Compilation et Exécution : mkdir b u i l d cd b u i l d cmake [ Emplacement du f i c h i e r CMakeLists. txt ] make. / [Nom du f i c h i e r e x e c u t a b l e ] 4 Conventions de codage Afin de produire du code propre et lisible, il est nécessaire de fixer un certain nombre de règles de style. Ces règles forment un standard de codage qui facilite la lecture, l écriture et le partage du code, tout particulièrement lorsque plusieurs personnes travaillent sur un même projet. Les 3

conventions de codage que vous devez suivre sont disponibles à l URL suivante : manao.inria. fr/perso/~pac/teaching/cpp/conventions-codage.pdf Exercice 4.1 Projet QtCreator avec CMake 1. Créer un projet QtCreator (nommez le Hello) de type Non-Qt Project avec CMake. 2. Familiarisez vous avec les différents boutons (compilation et execution du programme) 3. Modifiez votre code afin que la fonction main renvoie EXIT_SUCCESS plutôt que 0 4. Modifiez votre code afin que la fonction main puisse recevoir des arguments 5. Executez votre programme depuis la ligne de commande (terminal). Pour ce faire ouvrez un terminal et rendez vous dans le répertoire où l executable est créé. Ce répertoire est indiqué dans les propriétés de votre projet QtCreator. 6. Modifiez votre programme afin qu il affiche tous ses argument sur la sortie standard. 7. À quoi correspond l argument 0? 8. Complétez le programme afin qu il calcule et affiche la moyenne des nombres passés en paramètres au programmes. Si le programme est appelé sans argument ou si un argument est invalide, affichez un message d erreur et retournez EXIT_FAILURE. A présent pour chaque exercice pour créerez un projet QtCreator. Pour chaque exercice il y aura une fonction main qui illustre le fonctionnement de ce qui est demandé. 5 Autres outils Cette section vous présente d autres outils liés à la progammation en C++, il n est pas nécessaire d y jetter un oeil en séance mais ils vous seront utiles pour votre projet. 5.1 Documentation du code Nous utilisons un programme appelé Doxygen pour générer la documentation de notre code. Celuici a besoin d un fichier de configuration (Doxyfile) permettant de paramétrer de nombreuses options. Nous fournissons un Doxyfile, déjà configuré pour produire des fichiers html, dans le répertoire doc. Générez la documentation en allant dans le répertoire doc puis en tapant la commande doxygen Ouvrez ensuite le fichier doc/html/index.html, puis allez voir la documentation du ficher hello_world.cpp. Pour générer la documentation, Doxygen utilise des commentaires spéciaux. Il en existe plusieurs type, mais les plus commun sont ceux de la forme /**... */ (style javadoc) ou /*!... */ (style Qt). Sauf instruction contraire, ces commentaires sont associé à la prochaine définition dans le code. Ainsi, le bloc de commentaire avant la fonction main est automatiquement associé à la fonction main. En revanche, le bloc au début du fichier contient la commande spéciale \file qui indique que le commentaire est associé au fichier courant. Cela est obligatoire pour les fichier car il n est pas possible de placer un commentaire avant un fichier. Attention : il est nécessaire de documenter les fichiers, sans quoi les définitions qu ils contiennent risquent de ne pas apparaître dans la documentation! À l intérieur des blocs de commentaires, de nombreuses commandes sont disponibles. La commande \brief est un résumé succinct qui apparaît lorsque les déclarations sont listées; elle devrait être toujours présente. Les commandes \param permettent de documenter les différents 4

paramètres et la commande \return documente la valeur de retour. Les (nombreuses) autres commandes sont décrites dans la documentation de Doxygen : http://www.stack.nl/~dimitri/doxygen/manual.html Dans les TPs, il est demandé de documenter systématiquement les fichiers, les fonctions, les classes ainsi que les membres des classes (attributs et méthodes). En somme la documentation de votre code génère votre compte-rendu et elle n est donc en aucun cas optionnelle. 5.2 Analyse statique du code Un certain nombre d erreurs de programmation courantes peuvent être détectées automatiquement en analysant le code. GCC émet déjà un certains nombre de warnings lorsqu il détecte des constructions qui lui semblent douteuses, cependant cette analyse est relativement limitée. Nous vous proposons d utiliser cppcheck. Ce n est en rien obligatoire mais cela constitue une bonne habitude qui pourra vous être très utile pour les projets. Vous pouvez tester votre code en tapant simplement cppcheck --enable=style. L option --enable=style définie quels tests sont effectués. Vous pouvez utiliser --enable=all pour activer tous les tests. Pensez à utiliser cette commande régulièrement pour vérifier que votre code ne contient pas d erreurs. Attention cependant, les messages de cppcheck ne sont pas toujours des erreurs, mais parfois juste des conseils. 5