A voir également:
- [Langage C] Makefile
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Langage basic gratuit - Télécharger - Édition & Programmation
3 réponses
Comme personne ne répond, je vais prendre ma plume; mais je vais faire très court.
En général, la commande 'make' interprète un fichier texte 'Makefile'; dans ce fichier il rencontrera des couples dépendances/commandes; en fonction du résultat du test sur les dépendances il exécutera ou pas la commande. Le test sur les dépendances est du style: tel fichier est-il plus récent que tel autre?
Quel est l'intérêt?
Souvent un projet est constitué d'une multitude de fichiers. Si on modifie des fichiers, on peut lancer une commande pour tout reconstruire mais ce n'est pas très efficace au point de vue du temps; il vaudrait mieux ne recompiler que les fichiers modifiés et aussi ceux qui en dépendent; c'est ce que sait faire 'make' à merveille.
Donc 'make' fait ce qu'on lui a demandé (par exemple générer un fichier .o).
Un fichier '.o' n'est pas un exécutable, c'est un fichier objet.
Un librairie, ou plus exactement une bibliothèque, est évidemment fabriqué à partir de fichiers sources (.c ou .cpp en C) mais ces fichiers ont besoin d'être compilés pour être utilisables. A partir d'un '.o' ou de plusieurs '.o', on organise ces fichiers en un seul que l'on appelle bibliothèque et qui pourra être utilisé par d'autres programmes. La bibliothèque n'est pas, en elle même, exécutable; elle le devient après avoir été 'incorporée' à un programme exécutable.
Il y a beaucoup à dire sur 'make' et sur les bibliothèques.
En général, la commande 'make' interprète un fichier texte 'Makefile'; dans ce fichier il rencontrera des couples dépendances/commandes; en fonction du résultat du test sur les dépendances il exécutera ou pas la commande. Le test sur les dépendances est du style: tel fichier est-il plus récent que tel autre?
Quel est l'intérêt?
Souvent un projet est constitué d'une multitude de fichiers. Si on modifie des fichiers, on peut lancer une commande pour tout reconstruire mais ce n'est pas très efficace au point de vue du temps; il vaudrait mieux ne recompiler que les fichiers modifiés et aussi ceux qui en dépendent; c'est ce que sait faire 'make' à merveille.
Donc 'make' fait ce qu'on lui a demandé (par exemple générer un fichier .o).
Un fichier '.o' n'est pas un exécutable, c'est un fichier objet.
Un librairie, ou plus exactement une bibliothèque, est évidemment fabriqué à partir de fichiers sources (.c ou .cpp en C) mais ces fichiers ont besoin d'être compilés pour être utilisables. A partir d'un '.o' ou de plusieurs '.o', on organise ces fichiers en un seul que l'on appelle bibliothèque et qui pourra être utilisé par d'autres programmes. La bibliothèque n'est pas, en elle même, exécutable; elle le devient après avoir été 'incorporée' à un programme exécutable.
Il y a beaucoup à dire sur 'make' et sur les bibliothèques.
Merci pour cette réponse. Je commence à mieux comprendre.
Par conséquent qd il demande de mettre le makefile pour générer la bibliothèque.
Je dois faire un makefile qui génère un fichier .o qui correspond à ma bibliothèque c'est bien cela ?
Par conséquent qd il demande de mettre le makefile pour générer la bibliothèque.
Je dois faire un makefile qui génère un fichier .o qui correspond à ma bibliothèque c'est bien cela ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
7 janv. 2009 à 21:54
7 janv. 2009 à 21:54
Salut,
Voici un tutoriel
Voici un tutoriel
J'ai vu ce tutoriel mais il n'est pas simple qd on ne connait quasiment rien à Linux...
Exemple :
gcc -o hello.o -c hello.c -W -Wall -ansi -pedantic
=> je comprends vrmt pas a quoi sert tout ces trucs...
Sur windows j'appuie sur F9 ça compile c'est plus simple ; )
Est-ce que l'objectif d'un makefile c'est de faire un exécutable ? Ou cela peut être juste de construire un fichier objet ? Je ne vois pas l'intéret dans une bibliotheque dans tout les cas : /
Exemple :
gcc -o hello.o -c hello.c -W -Wall -ansi -pedantic
=> je comprends vrmt pas a quoi sert tout ces trucs...
Sur windows j'appuie sur F9 ça compile c'est plus simple ; )
Est-ce que l'objectif d'un makefile c'est de faire un exécutable ? Ou cela peut être juste de construire un fichier objet ? Je ne vois pas l'intéret dans une bibliotheque dans tout les cas : /
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
Jonathan
7 janv. 2009 à 22:09
7 janv. 2009 à 22:09
Salut,
Je ne comprends pas non plus le langage SMS.
Merci de ne plus l'utiliser sur CCM.
gcc c'est un compilateur en ligne de commande que tu n'est pas obligé de l'utiliser
Il y a des IDE graphics sous Linux
http://developer.kde.org/documentation/tutorials/index.html
http://www.codeblocks.org/downloads/binaries
https://fr.wikipedia.org/wiki/Anjuta
Pour voir que veut dire les option de gcc il faut lire man gcc
Je ne comprends pas non plus le langage SMS.
Merci de ne plus l'utiliser sur CCM.
gcc c'est un compilateur en ligne de commande que tu n'est pas obligé de l'utiliser
Il y a des IDE graphics sous Linux
http://developer.kde.org/documentation/tutorials/index.html
http://www.codeblocks.org/downloads/binaries
https://fr.wikipedia.org/wiki/Anjuta
Pour voir que veut dire les option de gcc il faut lire man gcc
gcc -o hello.o -c hello.c -W -Wall -ansi -pedantic
=> je comprends vrmt pas a quoi sert tout ces trucs...
Tous ces trucs, c'est la base de la compilation... il faut que tu cherches sur le net (il y a tout ce qu'il faut) ou dans des bouquins ou dans les 'man', en bref toute la doc existe et est accessible.
Ce n'est pas la peine d'aller plus loin, il faut déjà comprendre cela.
Enfin c'est mon humble avis.
=> je comprends vrmt pas a quoi sert tout ces trucs...
Tous ces trucs, c'est la base de la compilation... il faut que tu cherches sur le net (il y a tout ce qu'il faut) ou dans des bouquins ou dans les 'man', en bref toute la doc existe et est accessible.
Ce n'est pas la peine d'aller plus loin, il faut déjà comprendre cela.
Enfin c'est mon humble avis.