Les outils de développement en langage C++



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

Systeme d'exploitation

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

Quelques éléments de compilation en C et makefiles

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours Langage C/C++ Programmation modulaire

Introduction au langage C

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Introduction à l héritage en C++

ACTIVITÉ DE PROGRAMMATION


Éléments de programmation et introduction à Java

Évaluation et implémentation des langages

Cours d Algorithmique et de Langage C v 3.0

Programmation en C/C++

I. Introduction aux fonctions : les fonctions standards

Préparation à l examen EFA en Macro

Derrière toi Une machine virtuelle!

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

Architectures web/bases de données

Conventions d écriture et outils de mise au point

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours 1: Java et les objets

Introduction à la Programmation Parallèle: MPI

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Le Framework.Net. Introduction. Pourquoi.Net?

Les structures. Chapitre 3

Installation et prise en main

Introduction aux Bases de Données Relationnelles Conclusion - 1

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

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

Introduction à l algorithmique et à la programmation M1102 CM n 3

Mesurer les performances (CPU) sous Linux

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Java - la plateforme

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Optimisation de logiciels de modélisation sur centre de calcul

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

Compilation (INF 564)

Warren PAULUS Robin GODEFROID. C++ - Interface Graphique avec Visual Studio 2010

1. Structure d'un programme FORTRAN 95

Chapitre I Notions de base et outils de travail

Ce document décrit la démarche à suivre pour installer les outils de développement et compiler le projet TANAGRA.

Programmation avancée et répartie en Java : interfaçage avec d autres langages

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

L informatique en BCPST

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Java Licence Professionnelle CISII,

Notions fondamentales du langage C# Version 1.0

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Java Licence Professionnelle CISII,

Initiation. àl algorithmique et à la programmation. en C

UE Programmation Impérative Licence 2ème Année

Cours de C/C++ par la pratique. Hugues Talbot

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

Module.NET 3 Les Assemblys.NET

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Algorithmique et Programmation, IMA

C++ : PROGRAMMATION-OBJET

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Cours de Programmation 2

Programmation Structurée en Langage C

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Plan du cours. Historique du langage Nouveautés de Java 7

Initiation à JAVA et à la programmation objet.

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Introduction à C++ et à wxwidgets

Construction de logiciel et packaging

Cours Programmation Système

COMPARAISONDESLANGAGESC, C++, JAVA ET

INTRODUCTION À LA PROGRAMMATION PRATIQUE DU LANGAGE C. M. Le Gonidec

Traitement de données

Utiliser Java sans BlueJ

Utilisation d objets : String et ArrayList

Projet De Stijl Plate-forme pour robots mobiles

Programmation C++ (débutant)/instructions for, while et do...while

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Machines Virtuelles. et bazard autour. Rémi Forax

Claude Delannoy. 3 e édition C++

Chaîne de production d un programme

Algorithmique et programmation : les bases (VBA) Corrigé

Dossier projet isn 2015 par Victor Gregoire

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Méthodologie de la programmation

Cours 7 : Programmation d une chaîne d acquisition

Les fichiers. Chapitre 4

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Programmation système de commandes en C

Eclipse atelier Java

Transcription:

Les outils de développement en langage C++

Sommaire Les étapes de réalisation d'un exécutable Le pré processeur La création d'un exécutable

Les étapes de réalisation d'un exécutable

Traitement des fichiers sources Sources C++ Pré processeur Compilateur Objets

Traitement des fichiers assembleur Sources assembleur Assembleur Objets

Création de l'exécutable Objets Objets Bibliothèque s Editeur de liens Exécutable

Le pré processeur

Présentation Programme autonome qui est lancé avant la compilation. Il modifie le texte source conformément aux directives. Directives : instructions commençant par le caractère #.

#include Remplacement par le fichier d'en-tête indiqué. <nom du fichier> : le répertoire des fichiers d'en-tête du système. "nom du fichier" : répertoire de travail.

1er fichier : fichier d'entête : les déclarations fichier source(cpp) : les définitions Fichier1.h int fct1 (); Fichier1.cpp int fct1 () { } Fichier1.o

2ème fichier : fichier d'entête : les déclarations fichier source(cpp) : les définitions Fichier2.h int fct2 (); Fichier2.cpp int fct2 () { } Fichier2.o

Programme principal : inclusions des fichiers d'entête Fichiermain.cpp #include "Fichier1.h" #include "Fichier2.h" void main () { val = fct1(); val2 = fct2 (); } Fichiermain.o

Réalisation de l'exécutable Fichier1.o Fichier2.o Fichiermain.o Fichier.exe

#define : remplacement d'une constante En langage C pas constantes Remplacement d'une chaîne de caractères par une valeur. Exemple : #define MARDI 2 if (jour == MARDI) devient après passage dans le pré processeur if (jour == 2)

#define : les macros Répétition de code très court : utilisation de macros et non de fonctions. Exemple : #define MIN(x,y) (((x) < (y)? (x) : (y)) minimum = MIN (a, b); minimum = (((a) < (b)? (a) : (b))

Effets de bord des macros #define SURFACE (a, b) ((a) * (b)) #define RECTANGLE (a, b) a * b void main () { int r, s, t, u, s1, s2; r = 1; s = 2; t = 3; u = 4; s1 = SURFACE (r+s, t+u); s2 = RECTANGLE (r+s, t+u); cout << "Surface : " << s1 << endl; cout << "Rectangle : " << s2 << endl; }

Effets de bord des macros Résultat : Surface : 21 Rectangle : 11 Pourquoi? s1 = ((r+s) * (t+u); s2 = r+s * t+u; Donc ne pas oublier les parenthèses

#define : la compilation conditionnelle N'inclure un morceau de code que dans certaines condition. Condition possible : symbole défini ou non ou selon sa valeur. Exemples : #define DEBUG // DEBUG est défini #define NIVEAU 4 est 4 // le niveau de traitement

La compilation conditionnelle #ifdef SYMBOLE // code compilé si SYMBOLE est défini #else // code compilé si SYMBOLE n'est pas défini #endif

La compilation conditionnelle #if <condition sur le SYMBOLE > // code compilé si SYMBOLE vérifie la condition #else // code compilé si SYMBOLE ne vérifie pas la condition #endif

Compilation conditionnelle pour les tests Pour le déboguage : #ifdef _DEBUG cout << "Message de déboguage" << endl; #endif Pour le test : #if 0 // code non compilé donc non exécuté #endif

La compilation conditionnelle pour les fichiers d'entête // Fichier A #include "b.h" #include "c.h" // Fichier b.h #include "c.h" Le fichier c.h est inclus 2 fois -> erreur

La compilation conditionnelle pour les fichiers d'entête #if!defined(moteur_h INCLUDED) ( ou #ifndef (MOTEUR_H INCLUDED) ) #define MOTEUR_H INCLUDED Inclus que si MOTEUR_H_INCLUDED non défini #endif

Autres directives #undef : le symbole n'est plus défini #pragma : exploitation de propriétés spécifiques #error : message d'erreur #line : génère dans le texte des numéros de ligne utilisés pour les références croisées destinées au déboguage dans les programmes répartis sur plusieurs fichiers.

La création d'un exécutable

Etapes Pour la création d'un exécutable, deux étapes sont nécessaires : création de fichiers objets ; création d'un exécutable à partir de ces objets et des bibliothèques.

La compilation Création d'un fichier objet à partir d'un fichier source en langage évolué tel que les langages C++, Ada, Pascal, Cobol, Fortran, Fichier objet : fichier contenant du langage machine (octets chargés lors de l'exécution d'un programme). Fichier non exécutable.

L'assemblage Similaire à la compilation. Le logiciel qui réalise l'assemblage s'appelle également un assembleur (langage proche du langage machine). Cross-assembleur : crée un objet à partir d'un langage assembleur autre.

Les bibliothèques Fichiers objets concaténés dans un seul fichier. Bibliothèques système : fournies avec l'environnement de développement. Bibliothèques propres : créées par le programmeur.

DLL DLL (Dynamic Link Library) : chaînées que lors de l'exécution. Mémoire DLL Exécutable 1 Exécutable 2

L'édition de liens Elle crée l'exécutable : elle réalise les liens entre les différents objets et les bibliothèques (références sur les fonctions, ). Tous les objets, toutes les bibliothèques nécessaires -> l'exécutable.

Projet Sous Visual C++ : projet Sous linux : fichier makefile Projet : liste des fichiers sources et des bibliothèques pour créer l'exécutable.

Langages interprétés Un logiciel appelé interpréteur va lire chaque ligne du fichier source, va l'interpréter puis va l'exécuter. Pour de petits programmes. De moins en moins de langage sont interprétés. Langage Java : semi-interprété