1 Rapide introduction à la compilation d'un programme « Use the source, Luke! » David Mentré.

Slides:



Advertisements
Présentations similaires
Outils de développements
Advertisements

IFT313 – Introduction aux langages formels Eric Beaudry Département d’informatique Université de Sherbrooke Laboratoire sur JFLEX Été 2010.
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
Developpement Process « Coding party !! » Tony Carnal Altran.
Emacs Laurent Pierron
Outils logiciel pour la programmation en C. 2 Automatiser la compilation : make make est un utilitaire présent dans toute les distribution de linux >
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
1 Bienvenue! INF3723: Systèmes d’exploitation Luigi Logrippo
Comprendre Internet Bases théoriques et exercices pratiques, pour débutants complets... Et curieux !
1 Après 3 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
Les sauvegardes Pourquoi sauvegarder ? Que sauvegarder ? Quand sauvegarder ? Ou sauvegarder ? Et comment ?
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Les Logiciels Libres en pratique Samedi 25 mars 2006 Toulibre
1 Des outils pour le développement logiciel XEmacs Make CMT SVN Doxygen …
Tutoriel NS3 Eugen Dedu M2 RIM Université de Franche-Comté, Montbéliard, France octobre 2009 (ns 3.6) [Grands remerciements à Wassim Ramadan]
1 Après 5 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
RMLL Localisation. A propos... Le challenge L'organisation Les formats, outils, etc La collaboration Questions.
Présentation python : Épisode 1 ● Introduction à Python ● Les types de base et leur manipulation ● Les structures de contrôle ● Les fonctions Étienne Loks.
Le projet L'éditeur Les services associés 10/07/2007 OpenAguila, la gestion d’entreprise libre pour.
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
1 Le stage informatique de Masters APIM et PIE (2012/2013) Ivana Hrivnacova Vincent Lafage Basé sur le stage informatique du LAL et IPN par (2005/2006):
Quelques commandes de base I. Se déplacer dans l'arborescence Change directory (cd), print working directory (pwd) II. Lister des fichiers List (ls) III.
Initiation à QuickPlace, janvier Initiation à QuickPlace n Nature de l'outil n Fonctions de base (lecture, création) n Fonctions de gestionnaire.
Ubuntu Party Contribuer à Ubuntu. 2 | Ubuntu-Party Introduction Propagande Traductions Support Documentation Tests / Rapports de bugs Triage.
Qu'est-ce que c'est pour vous la veille informationnelle ?
Lettre de motivation Spontanée
Android PACT 2016 Encadrement Informatique.
Suites ordonnées ou mettre de l’ordre
Comment corriger son code sans forcément appeler l’enseignant M2202
Introduction au Langage Pascal
Cours de programmation en langage C (Norme ANSI)
ANDROID OS.
J’ai un bug, qu’est-ce que je peux faire ? Samuel Thibault 7 Mars 2017
Gestion de version centralisée et décentralisée
Utilisation de PostgreSQL
Status logiciel 29 avril 2010.
Les Tests de performances
Les outils du développeur
Cours 5 Mardi 13 septembre Période 1: Les bases de l’informatique et les composantes de l’ordinateur PARTIE 1 Période 2: L’utilisation de Power Point.
Informatique Cours 11 – 7 octobre 2016
Des outils pour le développement logiciel
L’intégration en continue
Prononcer un discours en public
Tableaux à plusieurs dimensions en langage C
Configuration NAT Utilisation de la commande outside source list
LE TIR EN CAMPAGNE Première compétition.
RIP - Configuration des Extensions.
Routage S 3 - Questionnaire N°1
Unix Raymond Ripp.
Fonctionnement et workflow
Elaboré par Ahmed BESSAIDI
Programmation système
Protocole AODV pour Iot
Documentation technique (Linux)
Des outils pour le développement logiciel : Make
Package R Markdown: Un outil pour générer des pages html avec R Studio
Programmation Android Introduction à Android
Introduction aux langages formels
Plus de 4000 langages....
DNS ET DHCP SOUS LINUX INSTALLATION ET CONFIGURATIONS EXPOSE GROUPE 2 THEME:THEME: REDIGE PAR IBRAHIMA FAYE.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Système d’exploitation UNIX
Assembleur, Compilateur et Éditeur de Liens
Information, Calcul, Communication
Les erreurs de mesure Projet d’Appui au renforcement des capacités
Les différents modes de démarrage de Windows
Introduction au Système d’exploitation Ms-DOS
Retour sur les interfaces
Formation Dragon NaturallySpeaking
Structure de données Les listes.
Transcription de la présentation:

1 Rapide introduction à la compilation d'un programme « Use the source, Luke! » David Mentré

2 Plan ● Aperçu du processus ● Outils nécessaires ● Les incantations ● Quelques infos sur make,./configure ● Trucs et astuces ● Bonus : compilation de hello ou de ce qui vous intéresse

3 Aperçu du processus (pour le C) ● Un source est compilé en un fichier objet toto.c toto.h → toto.o ● Plusieurs fichiers objets peuvent être liés en une bibliothèque statique (.a) ou dynamique (.so) a.o b.o c.o → bib.a bib.so ● Des fichiers objets et des bibliothèques forment un programme toto.o lib.so → toto

4 Les outils de base ● Chaîne de compilation, c.-à-d. le « compilateur » – compilateur gcc, assembleur as, linker collect – pensez à installer les paquets de développement (-dev) ● Outil de gestion des dépendances : make ● Outil de préparation des sources : configure – configure est fournit avec le source ● Bien évidemment, ça dépend du langage ! Python != C != Java <> OCaml /= Ada /= Eiffel

5 Outils parfois nécessaires ● Dépend beaucoup du projet, du langage,... – lire le README ● Génération de la documentation (Doxygen, LaTeX,...) ● Traduction (gettext,...) ● Scripts (shell, Python, Perl, m4,...)

6 L'incantation habituelle ● Avec quasiment tous les programmes GNU tar zxf toto-1.0.tar.gz && cd toto-1.0./configure : préparation des sources make : compilation (programme, documentation,...) make install : installation dans le système ● Ne le faites pas sans réfléchir ! Ne cassez pas votre système ! Installez dans /usr/local et nul part ailleurs ! J'aime les points d'exclamation !

7 La bonne incantation ● Lire le README, le relire ●./configure --prefix=/usr/local ● make && make install ● Savourez !

8 La bonne incantation (en pratique) ● Lire le README, le relire, le re-relire ●./configure --help ●./configure --prefix=/usr/local ● Installer les bibliothèques manquantes (G-K-syndrom) – voire les compiler ! :-( Reboucler sur le README ● make && make install – corriger les inévitables soucis. Reboucler sur le README ● Savourez (parfois) !

9./configure ● Examine votre système – trouve les fichiers et bibliothèques nécessaires... ou dit qu'il ne les trouve pas ! ● Génère des fichiers avec la bonne configuration – Makefile (utilisé par make), config.h,... ● Des options en ligne de commande permettent de faire des choix – bibliothèque, sous-systèmes, debug ou pas,... – lisez et utilisez l'option --help

10 make ● Lit le fichier Makefile – et tous les autres Makefile inclus ● Établit ce qu'il y a à faire – compilation, liaison, installation ● Le fait, dans le bon ordre !

11 Structure d'un Makefile cible: dépendance1 dépendance2 ⇥ commandes toto.o: toto.c toto.h ⇥ gcc -o toto.o toto.c toto: toto.o ⇥ gcc -o toto toto.o ● Faites attention aux tabulations ! – utilisez un éditeur adapté à la programmation (pas OOo ;-)

12 Quand ça ne marche pas... ● Essayer de comprendre le message d'erreur – souvent, une bibliothèque ou un outil manquant, version de développement d'une bibliothèque (toto-dev) – comprendre ce que font les outils ● Relire le README, INSTALL,... ● Mettre le message d'erreur dans Google – pas toujours très efficace ● Ne pas s'énerver ou maudire le développeur ;-)

13 Un truc : stow ● Sorte de gestion de paquet simplifié – forêt de liens de /usr/local/etc, /usr/local/lib,... ● Installation – ~/toto-src$./configure --prefix=/usr/local/stow/toto- 1.0 – make && make install – cd /usr/local/stow/ && stow toto-1.0 ● Dé-installation – cd /usr/local/stow/ && stow -D toto-1.0

14 Autres trucs ● Ne faites jamais make install en root – utilisez votre compte habituel et donnez-vous les droits sur /usr/local ● Massacrez le Makefile si ça peut vous aider – par exemple : supprimer la génération de la documentation si on veut juste le programme ● Utilisez make -n install – dit ce qu'il compte faire sans le faire

15 Conclusion ● La compilation de programme n'est pas toujours facile – si le paquet est disponible, utilisez le ! ;-) ● Mais indispensable parfois – avoir une version récente ou spécifique, s'amuser, tester, développer, traduire,... – permet de comprendre comment ça marche ● Posez des questions sur (ou

16 Des questions ? ?