ENVOL - Outils de construction 
formation pour le dEveloppemeNt et la ValOrisation des Logiciels en 
environnement de rech...
Le document : 
Cette presentation a ete faite avec des outils opensource et libre dans 
le but de presenter des outils de ...
Sommaire 
Sommaire 
Le but de cette presentation est de decouvrir les outils de construction 
d'applications dans le conte...
La construction d'application 
1. La construction d'application 
Johan Moreau (IRCAD) ENVOL - Outils de construction 27 se...
La construction d'application 
Sommaire 
La construction d'application 
Quelques rappels et remarques 
Les Make
le 
Les limitations et les solutions 
Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 5 / 98
La construction d'application Quelques rappels ... 
Les processus de construction simple 
On parle ici des logiciels perme...
La construction d'application Quelques rappels ... 
Preprocesseur 3 
Il s'agit d'une etape permettant des transformations ...
chier 
indique en param^etre. (A noter la dierence avec les package en 
java, import en Python et co) 
On peut aussi utili...
ne en C/C++ par exemple, de compilation conditionnelle, de la 
meta-programmation, etc ... 
A noter que les conventions de...
La construction d'application Quelques rappels ... 
Compilation 5 
Il s'agit d'une etape traduisant un code d'un langage v...
La construction d'application Quelques rappels ... 
Edition des liens 6 
L'edition des liens est un processus qui permet d...
chiers 
executables ou des bibliotheques dynamiques ou statiques, a partir de
chiers objets. 
Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 9 / 98
La construction d'application Quelques rappels ... 
Un peu de compilation donc ... Exemple en C sous UNIX 
Il faut deja or...
chiers, par exemple 
Pour C/C++, speration des declarations et implementations 
Pour Java, regroupement par package 
... 
...
chier.c) 
Pour Java, regroupement par package 
... 
cc : Supprime les commentaires, eectue les inclusions et les 
macros,....
chiers assembleurs, genere les
chiers objets 
ld : Determine les adresses memoires des symboles et lie les
chiers 
objets entre eux 
Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 10 / 98
La construction d'application Quelques rappels ... 
La construction dans le monde reel 
Cette suite semble
xe et standard et donc totalement automatisable ! 
Mais en realite : 
Plusieurs langages avec chacun ses speci
cites 
Des variantes dans les langages (gtk vs Qt par exemple) 
Problemes du multiplateforme/architecture/distribution 
Gr...
chiers et de cibles 
Il faut des outils pour assister le developpeur dans cette phase. 
Johan Moreau (IRCAD) ENVOL - Outil...
La construction d'application Quelques rappels ... 
La construction d'applications C/C++ 
Cette presentation n'illustrera ...
La construction d'application Quelques rappels ... 
A long time ago, in a galaxy far far away... 9 
Jusqu'a la
n des annees 70, les programmes etaient petits. 
En 1977, le Dr Stuart I Feldman (Bell Labs) invente l'outil Make 
L'outil...
La construction d'application Les Make
le 
La syntaxe du Make
le 
Le
chier Make
le est compose de plusieurs regles de la forme : 
cible : dependances 
TAB commandes 
cible : dependances 
TAB commandes 
...
le 
prog : main.o functions .o 
gcc
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Outils de construction pour la recherche
Prochain SlideShare
Chargement dans…5
×

Outils de construction pour la recherche

434 vues

Publié le

Le but de cette présentation est de découvrir les outils de construction d’applications dans le contexte d’un laboratoire de recherche : autoconf, cmake, scons

Publié dans : Logiciels
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
434
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Outils de construction pour la recherche

  1. 1. ENVOL - Outils de construction formation pour le dEveloppemeNt et la ValOrisation des Logiciels en environnement de recherche Organisation par le projet PLUME et les reseaux Calcul et DevLog Johan Moreau IRCAD 27 septembre 2010 Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 1 / 98
  2. 2. Le document : Cette presentation a ete faite avec des outils opensource et libre dans le but de presenter des outils de construction d'applications eux-aussi opensource. N'hesitez pas a m'envoyer vos remarques ou corrections sur johan.moreau sur gmail.com Ce document est distribue sous licence Creative Commons Attribution-ShareAlike 2.0 La session : Des sequences de slides emmelees avec des exemples de codes Des questions (et je l'espere des reponses) a tout moment Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 2 / 98
  3. 3. Sommaire Sommaire Le but de cette presentation est de decouvrir les outils de construction d'applications dans le contexte d'un laboratoire de recherche. 1. La construction d'application 2. Les GNU Autotools 3. CMake 4. SCons 5. QMake, MSBuild, Ant, Maven, ... Conclusion Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 3 / 98
  4. 4. La construction d'application 1. La construction d'application Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 4 / 98
  5. 5. La construction d'application Sommaire La construction d'application Quelques rappels et remarques Les Make
  6. 6. le Les limitations et les solutions Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 5 / 98
  7. 7. La construction d'application Quelques rappels ... Les processus de construction simple On parle ici des logiciels permettant d'automatiser (ordonnancer et piloter) l'ensemble des actions (preprocesseur, compilation, editions des liens, etc.) contribuant, a partir de donnees sources, a la production d'un (ensemble) logiciel. Les termes anglais sont Software Build1 ou Build automation2. Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 6 / 98
  8. 8. La construction d'application Quelques rappels ... Preprocesseur 3 Il s'agit d'une etape permettant des transformations sur un code source. Dans le monde C/C++, la commande du preprocesseur la plus repandue est include qui a pour but de recopier le contenu du
  9. 9. chier indique en param^etre. (A noter la dierence avec les package en java, import en Python et co) On peut aussi utiliser le preprocesseur pour faire des macros via de
  10. 10. ne en C/C++ par exemple, de compilation conditionnelle, de la meta-programmation, etc ... A noter que les conventions de codage demande souvent de limiter l'usage du preprocesseur (retours d'erreurs du compilateur) Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 7 / 98
  11. 11. La construction d'application Quelques rappels ... Compilation 5 Il s'agit d'une etape traduisant un code d'un langage vers du code en langage machine (reel ou virtuel) Le langage machine est soit directement interprete par la machine soit interprete par une machine virtuelle4. Dans ce dernier cas on peut citer Java ou DotNet. Les phases (traditionelles) : analyses lexicale, syntaxique puis semantique, generation du code intermediaire puis optimisation, generation du code objet Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 8 / 98
  12. 12. La construction d'application Quelques rappels ... Edition des liens 6 L'edition des liens est un processus qui permet de creer des
  13. 13. chiers executables ou des bibliotheques dynamiques ou statiques, a partir de
  14. 14. chiers objets. Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 9 / 98
  15. 15. La construction d'application Quelques rappels ... Un peu de compilation donc ... Exemple en C sous UNIX Il faut deja organiser un peu ses
  16. 16. chiers, par exemple Pour C/C++, speration des declarations et implementations Pour Java, regroupement par package ... Ensuite organiser son code : #ifdef DEBUG pour C par exemple (a activer sur la ligne de commande : gcc -DDEBUG=1
  17. 17. chier.c) Pour Java, regroupement par package ... cc : Supprime les commentaires, eectue les inclusions et les macros,... cc1 : Converti le code C en assembleur as : Assemblage des
  18. 18. chiers assembleurs, genere les
  19. 19. chiers objets ld : Determine les adresses memoires des symboles et lie les
  20. 20. chiers objets entre eux Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 10 / 98
  21. 21. La construction d'application Quelques rappels ... La construction dans le monde reel Cette suite semble
  22. 22. xe et standard et donc totalement automatisable ! Mais en realite : Plusieurs langages avec chacun ses speci
  23. 23. cites Des variantes dans les langages (gtk vs Qt par exemple) Problemes du multiplateforme/architecture/distribution Grand nombre de
  24. 24. chiers et de cibles Il faut des outils pour assister le developpeur dans cette phase. Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 11 / 98
  25. 25. La construction d'application Quelques rappels ... La construction d'applications C/C++ Cette presentation n'illustrera que les principes les plus courants de la construction d'applications C/C++ On ne parlera que tres peu des systemes embarques dans les IDE On laissera les problemes lies aux compilateurs de c^otes On ne parlera que tres peu des outils/besoins post-compilation (test unitaires, packaging, etc ...) Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 12 / 98
  26. 26. La construction d'application Quelques rappels ... A long time ago, in a galaxy far far away... 9 Jusqu'a la
  27. 27. n des annees 70, les programmes etaient petits. En 1977, le Dr Stuart I Feldman (Bell Labs) invente l'outil Make L'outil rencontre un succes immediat. En 1997, Peter Miller ecrit l'article : Recursive Make Considered Harmful7. Depuis de nombreux outils essayent d'ameliorer de processus 8. Johan Moreau (IRCAD) ENVOL - Outils de construction 27 septembre 2010 13 / 98
  28. 28. La construction d'application Les Make
  29. 29. le La syntaxe du Make
  30. 30. le Le
  31. 31. chier Make
  32. 32. le est compose de plusieurs regles de la forme : cible : dependances TAB commandes cible : dependances TAB commandes Chaque commande est precedee d'une tabulation : Make
  33. 33. le prog : main.o functions .o gcc

×