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

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

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

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

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

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

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

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

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

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

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

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

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 à 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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

# 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

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

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

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

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

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation Chapitre 2 Langage C 2.1 Le langage C, un langage non interprété Le C est un langage de programmation comme il en existe beaucoup d autres (C++, Fortran, Python, Matlab, IDL, ADA...). Il existe deux grandes

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

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

TP introductif de pratique du C

TP introductif de pratique du C Licence d informatique Module de Pratique du C TP introductif de pratique du C Philippe MARQUET Révision d octobre 2007 Ce premier TP introductif à la programmation en C va vous familiariser avec : la

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

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

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

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

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

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

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

Algorithmique et Structures de Données

Algorithmique et Structures de Données Plan du cours Algorithmique et Structures de Données Akkouche Samir : E-mail : samir.akkouche@liris.cnrs.fr Knibbe Carole: E-mail : carole.knibbe@univ-lyon1.fr 1. Rappels 2. Tableaux dynamiques a. Introduction

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

Chapitre I Langages de programmation et langage C

Chapitre I Langages de programmation et langage C Chapitre I Langages de programmation et langage C un chapitre où l on situe le langage C dans la très nombreuse famille des langages de programmation et où l on écrit son premier programme dans ce langage.

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

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

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

Chaine de compilation. Compilateur Warnings Compilation séparée Précompilateur Makefile Edition de liens et librairies

Chaine de compilation. Compilateur Warnings Compilation séparée Précompilateur Makefile Edition de liens et librairies Chaine de compilation Compilateur Warnings Compilation séparée Précompilateur Makefile Edition de liens et librairies 000 Chaine de compilation Code (C) (=langage humain) Compilateur Fichier executable

Plus en détail

GCC - la base de tout

GCC - la base de tout LinuxFocus article number 229 http://linuxfocus.org GCC - la base de tout par Lorne Bailey L auteur: Lorne vit à Chicago et travaille comme consultant spécialisé dans les transferts

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

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

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

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières Utiliser Dev-C++ Voici quelques explications sur l utilisation de Dev-C++, un excellent environnement de développement en C et C++ pour Windows qu on peut télécharger librement depuis le site www.bloodshed.net

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

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

Apprendre. Java et C++ en parallèle 3 e édition. Jean-Bernard Boichat. Groupe Eyrolles, 2003, ISBN : 2-212-11327-7

Apprendre. Java et C++ en parallèle 3 e édition. Jean-Bernard Boichat. Groupe Eyrolles, 2003, ISBN : 2-212-11327-7 Apprendre Java et C++ en parallèle 3 e édition Jean-Bernard Boichat Groupe Eyrolles, 2003, ISBN : 2-212-11327-7 1 L incontournable Hello world Nous le retrouvons dans presque tous les ouvrages de programmation.

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

TP1 - Introduction au langage C

TP1 - Introduction au langage C ENS Lyon L-Info PROJ1 2014-2015 TP1 - Introduction au langage C Sujet à terminer pour le dimanche 20 à 2h59, sous forme d une archive.zip contenant votre code source, par email à aurelien.cavelan@ens-lyon.fr.

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

Guide de configuration et d utilisation des classes et bibliothèques du livre «La Bible C++»

Guide de configuration et d utilisation des classes et bibliothèques du livre «La Bible C++» Université de Sherbrooke Département de génie électrique et informatique Guide de configuration et d utilisation des classes et bibliothèques du livre «La Bible C++» Guide rédigé par Pascal Durocher Révision

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

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

Internet la messagerie Orange 1er pas

Internet la messagerie Orange 1er pas Internet la messagerie Orange 1er pas Si votre page d accueil est GOOGLE tapez dans la barre de recherche «ORANGE» puis validez par la touche OK (Entrée) puis avec le bouton gauche de la souris clic sur

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

cmake: création de Makele et compilation de projets ctest: mise en place de tests sur vos projets

cmake: création de Makele et compilation de projets ctest: mise en place de tests sur vos projets Introduction à CMake CMake fournit un ensemble d'outils permettant de compiler un projet pour diérentes plateformes, de faire des tests et de créer des packages pour diérents systèmes. Il est utilisé dans

Plus en détail

Mini-Projet : Tournoi de Dames

Mini-Projet : Tournoi de Dames Mini-Projet : Tournoi de Dames L objectif du projet est de programmer un jeu de dames de façon à ce que votre programme puisse jouer une partie de dames avec les programmes des autres étudiants. 1 Organisation

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

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

Implémentation d'un programme dans un composant programmable

Implémentation d'un programme dans un composant programmable Table des matières 1Mise en œuvre matérielle de la carte Domoweb...2 2Logiciel AVRStudio...2 2.1Utilisation d'un projet existant...2 2.2Compilation...2 2.3Programmation de l'atmega 32...4 3Analyse du programme

Plus en détail

TD1 : Scripts bash. I. Courrier gagnant. II. Opacification de texte. Rappels

TD1 : Scripts bash. I. Courrier gagnant. II. Opacification de texte. Rappels TD1 : Scripts bash I. Courrier gagnant 1) Écrire un script couga.sh qui lit au clavier un nom, prénom, numéro de rue, nom de la rue, code postal et ville, puis affiche sur la sortie standard l adresse

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

Utilisation des tableaux numériques

Utilisation des tableaux numériques 8 Utilisation des tableaux numériques Les tableaux représentent un type de stockage de données souvent utilisé en langage C. Le Chapitre 6 vous en a donné un bref aperçu. Aujourd hui, vous allez étudier

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

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

I Quelques points d'algorithmique

I Quelques points d'algorithmique I Quelques points d'algorithmique 1) Types Type "simple" : Identificateur commençant par une majuscule = Description du type Les principaux types : les entiers naturels (int, long, long long) ou relatifs

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

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

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

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Tutoriel de création et d utilisation d une bibliothèque dynamique (dll)

Tutoriel de création et d utilisation d une bibliothèque dynamique (dll) Tutoriel de création et d utilisation d une bibliothèque dynamique (dll) Cette procédure démontre comment on crée une bibliothèque dynamique (Dynamic Link Library ou DLL) contenant des classes utiles pour

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

ABSA-NT. WIRELESS Hydra TP GSM

ABSA-NT. WIRELESS Hydra TP GSM 1 WIRELESS Hydra TP GSM 189 Avenue de Choisy 75013 Paris 2 Sommaire Table des matières Sommaire... 2 I Préambule : Matériel à votre disposition... 3 II Câblage Générale des TPs :... 4 1) Présentation de

Plus en détail

Premier programme VBA : syntaxe, édition, compilation

Premier programme VBA : syntaxe, édition, compilation 1 Premier programme VBA : syntaxe, édition, compilation Le langage VBA (Visual Basic for Applications) permet de concevoir des programmes selon une syntaxe qui lui est propre, puis d éditer et d exécuter

Plus en détail

Système d exploitation

Système d exploitation Chapitre 2 Système d exploitation 2.1 Définition et rôle Un ordinateur serait bien difficile à utiliser sans interface entre le matériel et l utilisateur. Une machine peut exécuter des programmes, mais

Plus en détail

Projet Info-SPE 2007-08 Cartographie 3D mercredi 19 décembre 2007

Projet Info-SPE 2007-08 Cartographie 3D mercredi 19 décembre 2007 Projet Info-SPE 2007-08 Cartographie 3D mercredi 19 décembre 2007 Cadre Le projet est à réaliser en groupe de quatre personnes (et seulement quatre). Sa durée est d environ quatre mois (de Janvier à Juin).

Plus en détail

Objectifs. Arguments de main() Précompilateur. Compilation séparée. Makefiles

Objectifs. Arguments de main() Précompilateur. Compilation séparée. Makefiles du cours d aujourd hui Programmation «orientée système» LANGAGE C COMPILATION passer des arguments à son programme directives de précompilation compilation Makefile Laboratoire d Intelligence Artificielle

Plus en détail

Automatisation des tâches avec les macros Visual Basic

Automatisation des tâches avec les macros Visual Basic Automatisation des tâches avec les macros Visual Basic Si vous ne connaissez pas les macros, ne vous laissez pas impressionner par le terme. Une macro est tout simplement un ensemble mémorisé de frappes

Plus en détail

Algorithmique et Programmation I

Algorithmique et Programmation I Algorithmique et Programmation I TP n 1 : Prise en main de Visual C++ Table de matières 1) Présentation générale 2 2) Création d'un nouveau projet 2 Saisie de code 4 3) Compilation et édition de liens

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