Quelques éléments de compilation en C et makefiles

Dimension: px
Commencer à balayer dès la page:

Download "Quelques éléments de compilation en C et makefiles"

Transcription

1 Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable sur une machine. Cette transformation est effectuée par un ensemble de programmes qu il est important de bien comprendre et maîtriser. 1.1 Commandes de compilation On trouve généralement, sur les machines Unix du U3, les commandes suivantes permettant d effectuer la compilation de programmes en C : cc, gcc Je vous recommande personnellement d utiliser de préférence le programme gcc, en particulier pour ses messages d erreurs qui sont souvent plus explicites et utiles. 1.2 Compiler un programme comportant plusieurs fichiers de code vous avez probablement déjà utilisé un programme de compilation de la manière suivante : gcc fichier.c à partir d un fichier de code fichier.c, le programme gcc construit un fichier exécutable dont le nom est celui par défaut a.out. Peut être avez-vous déjà utilisé l option -o de la manière suivante : gcc fichier.c -o executable l option -o permet de spécifier quel sera le nom de la sortie du programme gcc, ici c est l exécutable généré. Dans le cas de la compilation de plusieurs fichiers. Vous avez peut-être également utilisé une commande de cette sorte : gcc fichier1.c fichier2.c -o executable cette ligne permet de générer le fichier exécutable à partir de plusieurs fichiers de code. Cette méthode pour générer un exécutable est fortement déconseillée car elle cache les étapes intermédiaires et conduit souvent à des erreurs de la part du programmeur Compilation et édition de liens, principe Il est important de bien comprendre le processus de compilation. Le problème qui se pose quand on compile plusieurs fichiers de code est qu il y a dans certains de ces fichiers des appels à des fonctions ou variables qui apparaissent dans d autres fichiers. À cause de ce fait, la compilation d un code écrit en C se décompose en plusieurs étapes. Supposons que l ont ait des fichiers de code fichier1.c, fichier2.c, fichiern.c. Pour passer de ces multiples fichiers de code à un exécutable, on effectue les étapes suivantes : 1

2 1. pour chacun des fichier fichieri.c on effectue l étape de compilation. Cette étape consiste à construire un fichier binaire (dit fichier objet), presque compréhensible par la machine. Cependant, comme certaines fonctions ou variables utilisées dans ce code ne sont pas définie dans le fichier (ils sont définis dans d autres des fichiers de code), il n est pas possible de traduire leurs appels en langage machine. Par conséquent ces appels sont laissés tels quels dans le fichier binaire produit. Le résultat est un fichier, usuellement nommé fichieri.o qui n est pas exécutable. 2. Une fois que tous les fichiers.o ont été générés, par autant de compilations, on peut effectuer l étape d édition de lien. Lors de cette étape, le programme d édition de lien va mettre bout-à-bout tous les fichiers.o nécessaires puis va résoudre les appels qui ont été laissés durant l étape de compilation. Résoudre les appels consiste à remplacer l appel à la fonction par un lien (un saut) vers la fonction elle-même (qui se trouve à un endroit différent dans le binaire). Enfin, l édition de lien positionne le point de départ du programme (la première ligne de la fonction main) Compilation et édition de liens, application En utilisant gcc on peut (et on va) effectuer ces deux étapes séparément. Dans un premier temps, on effectue la compilation avec l option -c : gcc -c -Wall fichier1.c gcc -c -Wall fichier2.c cela nous permet d obtenir les fichiers binaires fichier1.o, fichier2.o, Nous pouvons maintenant démarrer l étape d édition de lien. Il suffit pour cela de passer les fichier.o à gcc de la manière suivante : gcc fichier1.o fichier2.o -o executable On obtient enfin le fichier exécutable, qu on pourra alors lancer directement en tapant :./executable Remarque : prenez l habitude d effectuer l étape de compilation avec l option -Wall qui active tous les warnings. Ceux-ci sont souvent très utiles pour détecter des erreurs qui passent à la compilation mais causent des problèmes à l exécution. 1.3 Utilité des fichiers header Lorsque l on souhaite obtenir un exécutable à partir d un code réparti sur plusieurs fichiers, on a vu qu il était nécessaire de compiler chacun des fichiers.c séparément. Lorsqu un de ces fichiers de code utilise par exemple une fonction définie dans un autre fichier, même si lors du processus de génération du.o il ne va pas traiter les appels à cette fonction mais il a tout de même besoin de connaître la signature de la fonction pour être en mesure de faire les vérifications de type nécessaires à la compilation. Pour cela on utilise des fichiers header avec le principe suivant : pour chaque fichier.c, par exemple fichier.c, qui définit des fonctions ou variables susceptibles d être utilisés dans d autre fichiers.c il est nécessaire d écrire un fichier header correspondant avec l extension.h (fichier.h dans notre exemple). Ce fichier header contient les signatures des fonctions et variables utilisables dans d autres fichiers de code. Les signatures sont données comme sur l exemple suivant : 2

3 int f(int, char *) Lorsqu un autre fichier de code utilise une de ces fonctions, il doit inclure le fichier header dans son préambule de la manière suivante : #include fichier.h À noter que la syntaxe du #include est différente de celle des librairies standard (pour des raisons de chemin d accès) ; en effet, on utilise la syntaxe suivante : #include<stdlib.h> 1.4 Headers et compilation Que se passe-t-il lorsque l on compile un fichier contenant la directive #include fichier.h? La toute première étape de la compilation est le passage du préprocesseur C. Celui ci a pour rôle, pour simplifier, de supprimer les commentaires et de traiter les instructions commençant par # (macros etc.). Pour le cas du #include fichier.h, le travail du préprocesseur consiste simplement à aller chercher le fichier inclus et à le copier à l emplacement de l instruction. Par conséquent, inclure un fichier header est équivalent à recopier au début du fichier les signatures des fonctions et variables que l on souhaite inclure. Remarque : dans des projets un peu complexe, il n est pas toujours évident de bien planifier les inclusions pour éviter que la même fonction ne soit définir plusieurs fois (ce qui engendre une erreur de compilation). Pour cette raison il est parfois d usage d encadrer le fichier header de la manière suivante (exemple pour notre fichier.c) : #IFNDEF _FICHIER.H_ #DEFINE _FICHIER.H_ signatures des fonctions et variables #ENDIF L utilité de cette méthode est que, même si le fichier header se trouve inclus plusieurs fois, il ne sera conservé qu en un unique exemplaire par le préprocesseur. 2 Utilisation de fichiers makefile pour la compilation L objectif de cette section est de (re-)voire la méthode pour automatiser la compilation de programmes en C en utilisant des fichier makefile. 2.1 Principes Un fichier makefile est un fichier spécifiquement conçu pour être utilisé par un programme (make ou gmake). Le fichier doit impérativement se nommer makefile pour être correctement sélectionné par make.le but de ces programmes est d automatiser les processus liés à la compilation de code ainsi que certaine autres tâches. Il existe d autres programmes et d autre formats de fichiers qui permettent de faire 3

4 des choses équivalents, mais dans le cadre des TP nous allons utiliser les fichiers makefile. À noter que dès qu un code dépasse les 2 fichiers à compiler il est impératif de chercher à automatiser les tâches de compilation, une approche manuelle des compilation serait alors une perte de temps et une source supplémentaire d erreurs. Un fichier makefile contient des règles de la forme suivante (séparées par des lignes vides) : cible : dépendance [tabulation] commandes la [tabulation] correspond bien à l espacement obtenu. grâce à la touche du même nom. Attention à bien respecter cette syntaxe. La commande peut si besoin être exprimée sur plusieurs lignes, chacune commençant par une tabulation. Une règle se comprend de la manière suivante : pour fabriquer la cible, il faut d abord vérifier que les dépendances sont à jour, en les produisant dans un premier temps si nécessaire. Lorsque c est le cas, et que les dépendances sont plus récentes que la cible, make va alors exécuter les commandes pour produire la cible. Parfois la cible n est pas produite, c est la cas dans la règle suivante, qui ne produit pas de fichier : clean : rm *.o 2.2 Un makefile simple Nous allons définir un fichier makefile pour le cas suivant : on dispose d un fichier erreur.c qui définir la fonction erreur on a écrit le fichier header erreur.h correspondant on a écrit un fichier exo1.c qui contient la fonction main et qui utilise la fonction erreur (et donc qui inclut le fichier erreur.h). Dans ce cas, voici un exemple de makefile que nous pouvons définir : exo1 : exo1.o erreur.o gcc exo1.o erreur.o -o exo1 exo1.o : exo1.c erreur.h gcc -c -Wall exo1.c erreur.o : erreur.c gcc -c -Wall erreur.c clean : rm *.o Voici le fonctionnement de ce fichier makefile : lorsque vous voulez construire votre exécutable exo1 vous pouvez taper make exo1 pour demander à make de traiter la règle correspondante. Vous pouvez 4

5 également taper uniquement make (dans ce cas make traite par défaut la première règle du fichier). Voici ce que make va faire : 1. regarder les dépendances de la règle exo1. Il faut que exo1.o et erreur.o soient à jour. 2. on commence par exo1.o. On sélectionne la règle correspondante et on regarde les dépendances : exo1.c et erreur.h. Pour ces deux dépendances on ne dispose pas de règle, on vérifie donc juste leur présence et on compare leurs dates à celle du fichier exo1.o si exo1.o existe et est plus récent que exo1.c et erreur.h alors il est à jour et il n y a rien à faire. si exo1.o n existe pas ou est plus ancien que exo1.c où erreur.h, dans ce cas il faut le refabriquer. Pour cela make exécute la commande correspondante : gcc -c -Wall exo1.c. 3. On procède ensuite de même pour erreur.o, il sera généré si il n existe pas ou est plus ancien que erreur.c 4. Maintenant que les dépendances sont à jour, on peut s occuper de exo1. Si celui-ci n existe pas ou est plus ancien que exo1.o ou erreur.o, on va alors exécuter gcc exo1.o erreur.o -o exo1. Remarquons que si on travaille quelque temps sur exo1.c et qu on ne modifie plus erreur.c alors make ne redemandera pas la compilation de erreur.c à chaque fois qu il est invoqué, ce qui serait inutile. Remarquons également que l on a mis erreur.h dans les dépendance de exo1.o, l idée derrière ceci est de forcer à recompiler exo1.c si l on décidait de modifier la signature de la fonction erreur. 2.3 Améliorer son fichier makefile Le fichier makefile présenté ci-dessus est très simple. Il est suffisant pour un projet simple, mais il existe beaucoup d options et de simplifications disponibles pour les fichiers makefile. Je vous encourage à aller chercher des documentations pour améliorer vos fichiers makefile. N oubliez pas que les outils de compilation, de type make sont des outils que vous serez probablement amenés à utiliser dans un cadre professionnel, il est dont entièrement profitable de s auto-former sur ce type d outils : le bénéfice ira beaucoup plus loin que les TPs de PPU. 2.4 Un makefile de départ Sur la page-web où se trouve ce document, vous trouverez un fichier makefile. Ce fichier est prévu pour être utilisé dès l exercice 2. Comme la première règle (cible) a pour dépendance exo2, il suffit de taper make pour fabriquer l exécutable. Quand vous passerez aux exercices suivant, il faut rajouter les règles correspondantes (par exemple pour exo4.o et exo4), et de modifier la ligne cible pour mettre l exercice courant par défaut (dans notre exemple exo4. Vous pouvez taper make clean pour supprimer les fichiers.o. 5

Introduction au Makefile

Introduction au Makefile Introduction au Makefile Nicolas Kielbasiewicz 3 mars 2009 Le développement d un programme et plus généralement d un logiciel demande au(x) programmeur(s) de gérer plusieurs fichiers, voire plusieurs langages.

Plus en détail

Formation Unix/Linux (9) Introduction à la programmation C sous Unix

Formation Unix/Linux (9) Introduction à la programmation C sous Unix Formation Unix/Linux (9) Introduction à la programmation C sous Unix Olivier BOEBION Mars 2004 1 Le langage C Introduire un langage de développement dans des travaux pratiques sur un système d exploitation

Plus en détail

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c Langage Impératif 1 TP 1 du 11 octobre 2010 Série d exercices Rappels rapides : - Un programme C s écrit toujours dans un fichier d extension.c (en minuscule!! sinon ce serait compilé comme du C++). Ce

Plus en détail

Compilation séparée avec make

Compilation séparée avec make ENSTA ParisTech École nationale supérieure de techniques avancées Compilation séparée avec make Cours IN201 Systèmes d exploitation Marc Baudoin La compilation séparée est

Plus en détail

Ecrire un Makefile, sans douleur et en quelques leçons.

Ecrire un Makefile, sans douleur et en quelques leçons. Ecrire un Makefile, sans douleur et en quelques leçons. M. Billaud Département Informatique Institut Universitaire de Technologie Université Bordeaux 1 Mai 2010 Résumé Ce document montre comment écrire

Plus en détail

TP1 : Organisation du projet d algorithmique

TP1 : Organisation du projet d algorithmique TP1 : Organisation du projet d algorithmique Enseignants: Antoine Bonnefoy et Sokol Koço Sujet: Liva Ralaivola, Antoine Bonnefoy et Sokol Koço 15 janvier 2014 1 Chasser à l aveuglette 1.1 Le projet Le

Plus en détail

Tutorial: Compiler un programme en C++

Tutorial: Compiler un programme en C++ Tutorial: Compiler un programme en C++ Ce tutorial propose de reprendre dans deux cas de figures (un unique fichier source, et plusieurs fichiers sources en c++11 différentes approches permettant de compiler

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Programmation en C sous Unix

Programmation en C sous Unix Nicolas Schodet nico@fairesuivre.fr Ce document, conçus pour le TP Efrei-Linux du Mercredi 16 Janvier 2002, initie à la programmation en C sous Unix. Il n est pas destinée à l apprentissage du langage

Plus en détail

L utilitaire "make" et son inséparable Makefile

L utilitaire make et son inséparable Makefile L utilitaire "make" et son inséparable Makefile Compilation et exécution Programme source Analyse lexicale (scaning) Optimisation du code Programme abstrait (optimisé) Génération du code Séquence d unités

Plus en détail

Notes sur la compilation séparée

Notes sur la compilation séparée Annexe B Notes sur la compilation séparée Ce document est probablement imparfait, mais il devrait déjà donner une introduction raisonnable au sujet traité... B.1 Introduction La compilation séparée est

Plus en détail

Introduction au langage C

Introduction au langage C Organisation du cours Introduction au langage C Premier cours Notions générales Aurélien Max aurelien.max@limsi.fr 12 séances de cours de 1h: mercredi 16-17h, salle A203 12 séances de TD de 1h: mercredi

Plus en détail

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

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Utilisation de make. Chapitre 1. 1.1 make : pour quoi faire? 1.2 Introduction aux makefiles

Utilisation de make. Chapitre 1. 1.1 make : pour quoi faire? 1.2 Introduction aux makefiles Chapitre 1 Utilisation de make 1.1 make : pour quoi faire? make est un programme qui détermine automatiquement quelles parties d un programme doivent être recompilées, et exécute les commandes nécessaires

Plus en détail

Laboratoire MSSMat. Formation Makefiles. GNU Make, niveau débutant. A.-S. Mouronval. Mars 2005

Laboratoire MSSMat. Formation Makefiles. GNU Make, niveau débutant. A.-S. Mouronval. Mars 2005 Laboratoire MSSMat Formation Makefiles GNU Make, niveau débutant A.-S. Mouronval Mars 2005 1 A quoi sert make? Utilitaire permettant d'exécuter des instructions pour construire une application Permet d'optimiser

Plus en détail

cours 6 - compilation séparée, classes de stockage et makefile

cours 6 - compilation séparée, classes de stockage et makefile cours 6 - compilation séparée, classes de stockage et makefile G. Bianchi, G. Blin, A. Bugeau, S. Gueorguieva, R. Uricaru 2015-2016 Programmation 1 - uf-info.ue.prog1@diff.u-bordeaux.fr la programmation

Plus en détail

INF601 : Algorithme et Structure de données. Avant propos

INF601 : Algorithme et Structure de données. Avant propos Avant propos Cours = Introduction aux Types de Données Abstraits (TDA) Chaque TDA est structuré en un ensemble de fichiers Compilation séparée pour faire les programmes Outils : make en C ant en java...

Plus en détail

Les logins et mots de passe sont les mêmes que l année dernière.

Les logins et mots de passe sont les mêmes que l année dernière. Travaux pratiques 01 2015 2016 1 Poste de travail 1.1 Connection Les logins et mots de passe sont les mêmes que l année dernière. 1.2 Le terminal Pour ouvrir un terminal, allez dans le menu en bas à gauche

Plus en détail

1 : 1 er programmes & prise en main de l environnement

1 : 1 er programmes & prise en main de l environnement 1 : 1 er programmes & prise en main de l environnement 1 Introduction 1.1 Rappel : gestion d arborescence et de fichiers sous UNIX Pour la manipulation de répertoire et de fichier à partir d un terminal

Plus en détail

Ecriture d un Makefile

Ecriture d un Makefile Ecriture d un Makefile ENSIMAG 1A Année scolaire 2008 2009 Un Makefile est un fichier, utilisé par le programme make, regroupant une série de commandes permettant d exécuter un ensemble d actions, typiquement

Plus en détail

0.1 Création d une bibliothèque

0.1 Création d une bibliothèque 0.1 Création d une bibliothèque 1 0.1 Création d une bibliothèque Je vais ici simplement me contenter de reprendre l exemple de l introduction et réécrire le programme cette fois en utilisant une bibliothèque

Plus en détail

Processus de compilation Préprocesseur Compilation Assemblage Edition de liens. ASR Période 2. Sylvain Jubertie. Département Informatique IUT Orléans

Processus de compilation Préprocesseur Compilation Assemblage Edition de liens. ASR Période 2. Sylvain Jubertie. Département Informatique IUT Orléans ASR Période 2 Sylvain Jubertie Département Informatique IUT Orléans 1 Processus de compilation 2 Préprocesseur 3 Compilation 4 Assemblage 5 Edition de liens Prérequis Prérequis langage C langage assembleur

Plus en détail

intro aux SE et mise en œuvre sous UNIX

intro aux SE et mise en œuvre sous UNIX TP: Programmer sous GNU/LINUX Ce premier TP introductif à la programmation en C va vous familiariser avec : la syntaxe du langage ; la mise en oeuvre du compilateur ; le préprocesseur cpp ; l'utilisation

Plus en détail

Introduction à Make et aux fonctions pseudo-aléatoires

Introduction à Make et aux fonctions pseudo-aléatoires Introduction à Make et aux fonctions pseudo-aléatoires 1 Introduction à Make Support de TP C Make est un outil de programmation, dont une version est disponible pour les systèmes Unix sous la licence GNU

Plus en détail

Utiliser NDK dans un projet Android

Utiliser NDK dans un projet Android Introduction NDK est une suite d outils permettant de compiler puis d utiliser du code natif dans une application Android. Ce code natif est ensuite appelé via JNI (Java Native Interface), fournissant

Plus en détail

Avant-propos. 1. Introduction

Avant-propos. 1. Introduction Avant-propos Les sections ou sous-sections marquées d un astérisque (*) ne font pas partie de la matière du cours IFT1969. Elles sont destinées à définir complètement le langage C (ANSI-C99) et à en préciser

Plus en détail

1.1- Compiler et exécuter un premier programme en C++

1.1- Compiler et exécuter un premier programme en C++ 1.1- Compiler et exécuter un premier programme en C++ 1- Un premier programme en C++ 2- Compilation et exécution 1- Un premier programme en C++ Le premier programme que propose le cours consiste à afficher

Plus en détail

Gestion des dépendances. Exemple : # toute ligne qui commence par " # " est un commentaire

Gestion des dépendances. Exemple : # toute ligne qui commence par  #  est un commentaire Gestion des dépendances Exemple : # toute ligne qui commence par " # " est un commentaire # gestion des dépendances # conversion dépend de conversion.c de sorties.c et de entrees.c conversion : conversion.o

Plus en détail

POO & C++ : TP 1 EISE4 2014 2015

POO & C++ : TP 1 EISE4 2014 2015 POO & C++ : TP 1 EISE4 2014 2015 Pablo Rauzy rauzy @ enst fr pablo.rauzy.name/teaching.html#epu-cpp 19 septembre 2014 N oubliez pas : Les TPs doivent être rendus par courriel à rauzy @ enst fr au plus

Plus en détail

Introduction au langage C - types et variables

Introduction au langage C - types et variables Chapitre 2 Introduction au langage C - types et variables 1 Le Langage C Le langage C est un langage de bas niveau dans le sens où il permet l accès à des données que manipulent les ordinateurs (bits,

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2014-2015 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 8 pages

Plus en détail

UE1 - Langage C Fiche TP1

UE1 - Langage C Fiche TP1 1 UE1 - Langage C Fiche TP1 Objectifs 1. Connaître quelques commandes linux 2. Savoir manipuler les outils de compilation tels que gcc, make 3. Ecrire des algorithmes, les coder en C, et les exécuter 1.

Plus en détail

Introduction aux Makefiles

Introduction aux Makefiles Ensimag 1 ère année TP Unix avancé 2015-2016 Introduction aux Makefiles Un Makefile est un fichier, utilisé par le programme make, regroupant une série de commandes permettant d exécuter un ensemble d

Plus en détail

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

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : 1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : La procédure d installation démarre. La fenêtre suivante vous indique

Plus en détail

Linux et Compilation

Linux et Compilation Département Informatique Laboratoires de système d exploitation Introduction Linux et Compilation par Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il peut être reproduit,

Plus en détail

Concevoir un Makefile. Vincent Loechner (original : Nicolas Zin, http://www.linux.efrei.fr/)

Concevoir un Makefile. Vincent Loechner (original : Nicolas Zin, http://www.linux.efrei.fr/) Concevoir un Makefile Vincent Loechner (original : Nicolas Zin, http://www.linux.efrei.fr/) 17 novembre 2003 Table des matières 1 Introduction 2 2 Création d un makefile 3 2.1 Simple Makefile............................

Plus en détail

Installation des outils du CD-Rom

Installation des outils du CD-Rom Installation des outils du CD-Rom Installer le JDK Pour installer Java2 SDK, exécutez le programme d'installation en double-cliquant sur l icône j2sdk-1_4_0-win.exe située dans le répertoire Java2 du CD-Rom.

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

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

Programmation C++ Utilisation de QtCreator pour la gestion de projet TD 0 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

Plus en détail

Sujet d examen 1. Pratique du C. Novembre 2009

Sujet d examen 1. Pratique du C. Novembre 2009 Durée 1 h 30 Documents autorisés Sujet d examen 1 Pratique du C Novembre 2009 Introduction Écrivez lisiblement et n hésitez pas à commenter votre code en langage C. Vous ne pouvez utiliser que les fonctions

Plus en détail

[WINDOWS 7 - LES FICHIERS] 28 avril 2010. Logiciel / Windows

[WINDOWS 7 - LES FICHIERS] 28 avril 2010. Logiciel / Windows Ce dossier a une forme un peu différente des précédentes : c est un ensemble de «fiches» décrivant chacune une des opérations que l on peut effectuer avec un fichier (enregistrer, renommer, etc.). Chaque

Plus en détail

Compilation avec Make

Compilation avec Make Compilation avec Make Laurent Réveillère Enseirb-Matmeca / IPB Département Télécommunications Laurent.reveillere@ipb.fr http://http://reveille.vvv.enseirb-matmeca.fr/ Objectifs Automatiser la reconstruction

Plus en détail

MEUTER Cédric / LEVY Eythan. Université Libre de Bruxelles 23/09/2005

MEUTER Cédric / LEVY Eythan. Université Libre de Bruxelles 23/09/2005 Développement en C sous LINUX MEUTER Cédric / LEVY Eythan Université Libre de Bruxelles 23/09/2005 Développement en C sous LINUX p. 1 Comment écrire son programme? Principaux éditeurs : XEmacs Emacs vi

Plus en détail

Module 7 : Crashs d Excel

Module 7 : Crashs d Excel Module 7 : Crashs d Excel 7.0 Introduction La plupart des utilisateurs d Excel ont probablement été confrontés à des ralentissements ou à un blocage, accompagné du redoutable message «Microsoft Excel a

Plus en détail

Introduction à la programmation

Introduction à la programmation Chapitre 2 Introduction à la programmation Nous avons vu, dans le chapitre précédent, ce qu est un algorithme et un certain nombre de façons pour exécuter les algorithmes à la main. Nous allons voir, dans

Plus en détail

Mon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2

Mon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2 Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................

Plus en détail

Programmation Impérative 2006-2007

Programmation Impérative 2006-2007 Programmation Impérative 2006-2007 Licence Physique-Applications, Phisique-Chimie Université Jean Monnet Ruggero G. PENSA ruggero.pensa@univ-st-etienne.fr Définition de nouveaux types En pseudo-langage

Plus en détail

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/8.1 64 bits, Windows 2008 R2 et Windows 2012 64 bits

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/8.1 64 bits, Windows 2008 R2 et Windows 2012 64 bits WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/8.1 64 bits, Windows 2008 R2 et Windows 2012 64 bits Manuel d initiation du Planificateur 2 INTRODUCTION 5 CHAPITRE I : INSTALLATION

Plus en détail

1 Librairies sous Linux avec GCC... 1. 1.1 Projet multi-fichiers simple... 1. 1.2 Projet multi-fichiers avec une librairie statique...

1 Librairies sous Linux avec GCC... 1. 1.1 Projet multi-fichiers simple... 1. 1.2 Projet multi-fichiers avec une librairie statique... 1 Librairies sous Linux avec GCC... 1 1.1 Projet multi-fichiers simple... 1 1.2 Projet multi-fichiers avec une librairie statique... 2 1.3 Création d une librairie dynamique... 2 1.4 Projet multi-fichiers

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Atelier 0: Initiation aux outils de développement C sous Linux

Atelier 0: Initiation aux outils de développement C sous Linux 1)Objectifs: Atelier 0: Initiation aux outils de développement C sous Linux S'initier à l'utilisation de quelques outils de développement avec le langage C sous Linux. Développer en C sous Linux à partir

Plus en détail

Les outils de développement en langage C++

Les outils de développement en langage C++ 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

Plus en détail

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

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Atelier de programmation en python

Atelier de programmation en python Atelier de programmation en python Kévin Chewie Sztern et Christophe Sagane Vermorel Contents Introduction 2 L environnement de développement 2 Démarrer l IDE............................... 2 Premiers

Plus en détail

Programmation Unix Notes de Cours/TD/TP autorisées; autres documents, calculettes, ordinateurs interdits.

Programmation Unix Notes de Cours/TD/TP autorisées; autres documents, calculettes, ordinateurs interdits. Département d Informatique Faculté des Sciences de Luminy Programmation Unix Vendredi 17 décembre 2010 Durée 3h Licence MI, UE INF5, resp. E. Thiel Notes de Cours/TD/TP autorisées; autres documents, calculettes,

Plus en détail

Initiation au C cours n 9

Initiation au C cours n 9 Initiation au C cours n 9 Antoine Miné École normale supérieure 26 avril 2007 Plan du cours compilation séparée, modularité, bibliothèques.a et.so, recompilation automatique avec make. Déroulement de la

Plus en détail

Guide pour la conception d'une application en C

Guide pour la conception d'une application en C Guide pour la conception d'une application en C Ph. Preux DESS IMST, ULCO Novembre 1999 1 Principes généraux Une application informatique, dès qu'elle dépasse une centaine de lignes de code, doit impérativement

Plus en détail

Aide mémoire Makefile

Aide mémoire Makefile Aide mémoire Makefile Unix/Linux Commande : make Fichiers : makefile ou Makefile (dans cet ordre) www.gnu.org/software/make/manual : LA référence Table des matières I À quoi sert un Makefile et comment

Plus en détail

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

Plus en détail

Introduction aux exercices en Java

Introduction aux exercices en Java Introduction aux exercices en Java Avant de commencer les séries proprement dites, nous allons voir quelques informations utiles concernant le langage de programmation principal de ce cours d'informatique

Plus en détail

AP2 - programmation objet en C++ Semestre 2, année 2009-2010. Février 2010

AP2 - programmation objet en C++ Semestre 2, année 2009-2010. Février 2010 Makefile / makedepend AP2 - programmation objet en C++ Semestre 2, année 2009-2010 Département d informatique IUT Bordeaux 1 Février 2010 1 / 1 Le projet Situation : écrire un projet de simulation de courses

Plus en détail

TP Unix : Générateur de «galerie d images» en HTML

TP Unix : Générateur de «galerie d images» en HTML Ensimag 1 re année TP Unix avancé 2015-2016 TP Unix : Générateur de «galerie d images» en HTML 1 Vue d ensemble du TP Objectif pratique : à partir d un répertoire contenant des images en format JPEG, construire

Plus en détail

Installation et utilisation de SSH. .et

Installation et utilisation de SSH. .et Installation et utilisation de SSH.et.soumission de travail SSH est un protocole de communication qui permet de communiquer à distance entre deux ordinateurs. Pour cela, il faut qu un des deux ordinateurs

Plus en détail

Environnement logiciel

Environnement logiciel Environnement logiciel Programmation C++ : FPMs 1ère Bachelier Les travaux de 1 ère Bachelier se dérouleront sur la suite logicielle Visual Studio 2005 de Microsoft. Ci-après vous trouverez la procédure

Plus en détail

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

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

Environnement de développement / Projet de programmation 1 (J1INPW01) Compilation

Environnement de développement / Projet de programmation 1 (J1INPW01) Compilation Environnement de développement / Projet de programmation 1 (J1INPW01) Compilation Plan gcc (compilation et compilation séparée) Make (Makefile) Makefile générique 2 Compilation simple #include

Plus en détail

TP Qt : Prise en main

TP Qt : Prise en main Université de Strasbourg UFR de Mathématiques et d Informatique Département d Informatique Licence 3 d Informatique IHM Année 2009/2010 TP Qt : Prise en main Objectif Le but de ce tp est une prise en main

Plus en détail

Créer sa première présentation :

Créer sa première présentation : PowerPoint est une application dédiée à la conception de présentations de toutes sortes, utilisées en projection ou en affichage sur écran. Ces présentations peuvent intégrer aussi bien du texte, des diagrammes,

Plus en détail

TP 2 et 3 Introduction à C

TP 2 et 3 Introduction à C TP 2 et 3 Introduction à C Partie A : prise en main de gcc et makefile L'objectif de cette partie est de vous familiariser avec le langage C et sa chaîne de développement basée sur le compilateur gcc,

Plus en détail

ENSI. Visual C++ Initiation

ENSI. Visual C++ Initiation ENSI Visual C++ Initiation Tables des matières 1. LES MFC (MICROSOFT FOUNDATION CLASSES)...3 1.1 DÉFINITION... 3 1.2 L ESPACE DE TRAVAIL... 3 2. CRÉER UN NOUVEAU PROJET...5 2.1 ETAPE 1 : CHOISIR LE TYPE

Plus en détail

Comment compiler un programme MATLAB

Comment compiler un programme MATLAB Comment compiler un programme MATLAB 1- Introduction Le compilateur MATLAB génère un code source C à partir d une fonction MATLAB. Le code C généré par le compilateur MATLAB peut être: soit un code source

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

Introduction à l utilisation d Occigen

Introduction à l utilisation d Occigen Introduction à l utilisation d Occigen Vous avez obtenu des heures de calcul sur un supercalculateur national! Ce petit guide va vous permettre de démarrer en quelques minutes. Avant de commencer, il vous

Plus en détail

# Zone où typiquement seront placées des déclarations de variables et de règles # (voir plus tard)

# Zone où typiquement seront placées des déclarations de variables et de règles # (voir plus tard) UNIVERSITÉ DE NICE SOPHIA ANTIPOLIS UFR FACULTÉ DES SCIENCES Parc Valrose BP 71 F 06108 NICE Cedex 2 Licence 3 d Informatique Environnement de Programmation 2005-2006 Philippe Collet Séance de TP n 02

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

TD 3: (Re-)Compilation automatique à l aide de Make

TD 3: (Re-)Compilation automatique à l aide de Make TD 3: (Re-)Compilation automatique à l aide de Make ED6 Licence 3 Université Paris Diderot 2012 2013 L objectif de ces travaux dirigés est la découverte de l outil Unix make, un gestionnaire de dépendances

Plus en détail

IFT1166 TRAVAIL PRATIQUE #3 18 juin 2008. Gestion de stocks à la sauce C++! Mohamed Lokbani

IFT1166 TRAVAIL PRATIQUE #3 18 juin 2008. Gestion de stocks à la sauce C++! Mohamed Lokbani IFT1166 TP3 Été 2008 1/5 IFT1166 TRAVAIL PRATIQUE #3 18 juin 2008 Gestion de stocks à la sauce C++! Mohamed Lokbani Équipes : le travail peut-être fait en binôme mais vous ne remettez qu un travail par

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

Administration de Parc Informatique TP09 : aptitude, administration de comptes utilisateurs et retour sur marionnet

Administration de Parc Informatique TP09 : aptitude, administration de comptes utilisateurs et retour sur marionnet Institut Galilée L2 Info S1 Année 2011 2012 Administration de Parc Informatique TP09 : aptitude, administration de comptes utilisateurs et retour sur marionnet 1 Introduction Pendant la première partie

Plus en détail

Crésus-facturation multilingue. Dès version 3.4

Crésus-facturation multilingue. Dès version 3.4 Crésus-facturation multilingue Dès version 3.4 2 Crésus-facturation multi-lingue 1 Introduction Comment faire des factures multilingues? Qu'est ce qu'une facturation multilingue? Pour le logiciel Crésus-facturation,

Plus en détail

WinTask Le Planificateur de tâches sous Windows XP et 2003 Server. Manuel d initiation du Planificateur

WinTask Le Planificateur de tâches sous Windows XP et 2003 Server. Manuel d initiation du Planificateur WinTask Le Planificateur de tâches sous Windows XP et 2003 Server Manuel d initiation du Planificateur 2 INTRODUCTION 5 CHAPITRE I : INSTALLATION 7 CHAPITRE II : PARAMETRER LE LANCEMENT D UNE TACHE 9 CHAPITRE

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2013-2014 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 12 pages

Plus en détail

10.3.1.4 Travaux pratiques Sauvegarde et récupération de données sous Windows 7

10.3.1.4 Travaux pratiques Sauvegarde et récupération de données sous Windows 7 5.0 10.3.1.4 Travaux pratiques Sauvegarde et récupération de données sous Windows 7 Introduction Imprimez et faites ces travaux pratiques. Au cours de ce TP, vous allez sauvegarder des données. Vous effectuerez

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Publipostage avec Microsoft WORD

Publipostage avec Microsoft WORD Septembre 2014 révision février 2015 Publipostage avec Microsoft WORD Présentation Le logiciel Elite vous offre la possibilité d effectuer des courriers automatiques avec Microsoft Word. La technique utilisée

Plus en détail

Pointeurs de fonctions

Pointeurs de fonctions Florence Levé - Université de Picardie Jules Verne 145 Pointeurs de fonctions Parfois utile de passer une fonction comme paramètre d une autre fonction Un pointeur de fonction correspond à l adresse du

Plus en détail

Cycle de vie d un programme

Cycle de vie d un programme Cycle de vie d un programme Ensimag 1A - Préparation au Projet C Année scolaire 2009 2010 Les objectifs de cette séance sont : de comprendre les différentes étapes de la chaîne de compilation d un programme

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

TP 02 : Création d un projet Qt

TP 02 : Création d un projet Qt Université de Strasbourg UFR de Mathématiques et d Informatique Département d Informatique Licence 3 d Informatique IHM Année 2010 2011 TP 02 : Création d un projet Qt Résumé Objectif des TP est de créer

Plus en détail

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

TP1 : Initiation à l algorithmique (1 séance) Université de Versailles Vanessa Vitse IUT de Vélizy - Algorithmique 2006/2007 TP1 : Initiation à l algorithmique (1 séance) 1 Prise en main de l environnement Unix : rappels et compléments Le but de la

Plus en détail

Résolution d exercices avec Visual Studio

Résolution d exercices avec Visual Studio Résolution d exercices avec Visual Studio Document rédigé par David Taralla 3 e Bachelier en Sciences Informatiques david.taralla@student.ulg.ac.be Dernière version : 7 novembre 2011 Préambule Ce petit

Plus en détail

CREER UNE BASE DE DONNEES ACCESS AVEC DAO (étape par étape)

CREER UNE BASE DE DONNEES ACCESS AVEC DAO (étape par étape) CREER UNE BASE DE DONNEES ACCESS AVEC DAO (étape par étape) NIVEAU : PREMIERE RENCONTRE AVEC VB INITIES/EXPERIMENTES Pré requis pour comprendre ce tutorial : - Connaître les principales commandes de VB

Plus en détail

LE RPV DE NIVEAU RÉSEAU AVEC TINC

LE RPV DE NIVEAU RÉSEAU AVEC TINC LE RPV DE NIVEAU RÉSEAU AVEC TINC L entreprise Ilog est une petite entreprise de services informatiques située à La Défense. Les chefs de projet de l entreprise sont souvent en déplacement à travers toute

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

Guide d intégration. Protection de logiciels 4D avec DinkeyPRO/FD. Contact Commercial : Tél. : 02 47 35 70 35 Email : com@aplika.

Guide d intégration. Protection de logiciels 4D avec DinkeyPRO/FD. Contact Commercial : Tél. : 02 47 35 70 35 Email : com@aplika. Guide d intégration Protection de logiciels 4D avec DinkeyPRO/FD Contact Commercial : Tél. : 02 47 35 70 35 Email : com@aplika.fr Contact Technique : Tél. : 02 47 35 53 36 Email : support@aplika.fr Version

Plus en détail

8.6 TABLEAUX ANNEXES / ÉTATS FINANCIERS

8.6 TABLEAUX ANNEXES / ÉTATS FINANCIERS 8.6 TABLEAUX ANNEXES / ÉTATS FINANCIERS La fonction décrite ci-dessous n est disponible que si le tableur Excel de Microsoft (version 2007 ou supérieure) est installé sur votre poste de travail. Les rapports

Plus en détail

TP Numéro 3 METTRE EN FORME UN DOCUMENT A L AIDE D EN TETE, DE PIEDS DE PAGE... ET GERER LES SECTIONS

TP Numéro 3 METTRE EN FORME UN DOCUMENT A L AIDE D EN TETE, DE PIEDS DE PAGE... ET GERER LES SECTIONS TP Numéro 3 METTRE EN FORME UN DOCUMENT A L AIDE D EN TETE, DE PIEDS DE PAGE... ET GERER LES SECTIONS 1 MISE EN PAGE Nous allons travailler sur la mise en forme d un document dans Word à l aide de fonctions

Plus en détail

Utiliser le réseau des écoles de Strasbourg (Windows 7)

Utiliser le réseau des écoles de Strasbourg (Windows 7) Utiliser le réseau des écoles de Strasbourg (Windows 7) Comment distribuer un travail aux élèves Comment le récupérer Comment organiser les dossiers partagés Un document type à distribuer Nous allons prendre

Plus en détail