Outils pour utilisateurs

Outils du site


issue89:labo_linux_2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue89:labo_linux_2 [2015/02/10 17:09] – [11] auntieeissue89:labo_linux_2 [2015/02/10 17:24] (Version actuelle) – [17] auntiee
Ligne 225: Ligne 225:
 QUE NOUS FAUT-IL D'AUTRE ? QUE NOUS FAUT-IL D'AUTRE ?
  
-Une fois que nous avons les sources du noyau décompressés sur notre disque, nous aurons besoin de plusieurs choses afin de compiler. Naturellement, nous aurons besoin du compilateur C, mais ce ne sera pas tout.+Une fois que les sources du noyau sont décompressés sur notre disque, nous aurons besoin de plusieurs choses pour pouvoir le compiler. Naturellement, nous aurons besoin du compilateur C, mais ce ne sera pas tout.
  
 Pour les lecteurs qui auraient besoin d'une explication rapide sur le processus de compilation, nous commençons par décrire certains concepts. Pour compiler un programme écrit dans un langage de programmation compilé, nous aurons tout d'abord besoin du programme lui-même, ou ce qu'on appelle le code source. C'est tout simplement un fichier texte qui contient les instructions de programme, même si l'extension a été changée en « .c » pour indiquer qu'il s'agit d'un fichier de code source C, et non pas d'un simple fichier contenant du texte. Nous allons maintenant poursuivre avec un court exemple d'un programme en C, contenu dans un fichier nommé « bonjour.c ». C'est peut-être l'exemple le plus connu de la programmation C, que presque tous les programmeurs auront vu à un moment donné : Pour les lecteurs qui auraient besoin d'une explication rapide sur le processus de compilation, nous commençons par décrire certains concepts. Pour compiler un programme écrit dans un langage de programmation compilé, nous aurons tout d'abord besoin du programme lui-même, ou ce qu'on appelle le code source. C'est tout simplement un fichier texte qui contient les instructions de programme, même si l'extension a été changée en « .c » pour indiquer qu'il s'agit d'un fichier de code source C, et non pas d'un simple fichier contenant du texte. Nous allons maintenant poursuivre avec un court exemple d'un programme en C, contenu dans un fichier nommé « bonjour.c ». C'est peut-être l'exemple le plus connu de la programmation C, que presque tous les programmeurs auront vu à un moment donné :
Ligne 267: Ligne 267:
 Hello, world!**  Hello, world!** 
  
-Les deux approches ont des avantages et des inconvénients. En utilisant les langages compilés, nous obtenons un fichier exécutable qui peut se dérouler très rapidement, et l'utilisateur final n'aura besoin d'accéder qu'à ce fichier unique. D'un autre côté, les langages interprétés donneront accès au code source à l'utilisateur final, qu'il ou elle pourra modifier et ajuster à ses besoins. Mais ils auront besoin d'avoir un interpréteur installé sur leur système pour ce langage particulier, et le résultat final s'exécutera un peu plus lentement.+Les deux approches ont des avantages et des inconvénients. En utilisant les langages compilés, nous obtenons un fichier exécutable qui peut se dérouler très rapidement, et l'utilisateur final n'aura besoin d'accéder qu'à ce fichier unique. En revanche, les langages interprétés donneront à l'utilisateur final accès au code source, qu'il  pourra modifier et ajuster à ses besoins. Mais il faut qu'un interpréteur pour ce langage particulier soit installé sur leur système et le résultat final s'exécutera un peu plus lentement.
  
 Pour compiler notre programme de test « bonjour.c », en supposant que nous avons le compilateur C gcc installé sur notre système (sinon, nous aurons besoin d'installer le paquet "gcc"), nous pouvons saisir : Pour compiler notre programme de test « bonjour.c », en supposant que nous avons le compilateur C gcc installé sur notre système (sinon, nous aurons besoin d'installer le paquet "gcc"), nous pouvons saisir :
Ligne 273: Ligne 273:
 $ cc bonjour.c -o bonjour $ cc bonjour.c -o bonjour
  
-Ceci demande au compilateur C (« cc », vous comprenez ?) de compiler le fichier de code source « bonjour.c », et de produire le fichier exécutable « bonjour ». Notez que dans le monde UNIX et GNU/Linux, les fichiers exécutables n'ont pas besoin de l'extension « .exe ». Une fois que le fichier est compilé, l'exécutable résultant peut être exécuté par la commande :+Ceci demande au compilateur C (« cc », vous comprenez ?) de compiler le fichier de code source « bonjour.c », et de produire le fichier exécutable « bonjour ». Notez que dans le monde UNIX et GNU/Linux, les fichiers exécutables n'ont pas besoin de l'extension « .exe ». Une fois le fichier compilé, l'exécutable résultant peut être lancé par la commande :
  
 $ ./bonjour  $ ./bonjour 
Ligne 295: Ligne 295:
 and the corresponding instructions from the makefile would be executed.** and the corresponding instructions from the makefile would be executed.**
  
-Naturellement, les choses peuvent devenir un peu plus complexes quand un gros projet applicatif contient plusieurs centaines de fichiers C et en-têtes. Dans le cas du noyau Linux, tous ces fichiers ne sont pas toujours compilés selon l'architecture cible (Intel 32-bit, IA64, …) pour laquelle nous compilons. Pour simplifier les choses, on peut écrire un fichier contenant des instructions sur ce qu'il faut compiler, dans quel ordre, et avec quels paramètres de compilation. Ce makefile peut être considéré comme un modèle ou guide pour le processus de compilation.+Naturellement, les choses peuvent devenir un peu plus complexes quand un gros projet applicatif contient plusieurs centaines de fichiers C et en-têtes. Dans le cas du noyau Linux, tous ces fichiers ne sont pas toujours compilésselon l'architecture cible (Intel 32-bit, IA64, …) pour laquelle nous compilons. Pour simplifier les choses, on peut écrire un fichier contenant des instructions sur ce qu'il faut compiler, dans quel ordre, et avec quels paramètres de compilation. Ce makefile peut être considéré comme un modèle ou guide pour le processus de compilation.
  
 Pour en revenir à notre exemple de programme, nous pourrions écrire le fichier « Makefile » avec le contenu suivant : Pour en revenir à notre exemple de programme, nous pourrions écrire le fichier « Makefile » avec le contenu suivant :
Ligne 303: Ligne 303:
         cc bonjour.c -o bonjour          cc bonjour.c -o bonjour 
  
-Maintenant, à chaque fois que nous souhaitons compiler le fichier, nous pourrions utiliser la commande make pour exécuter le contenu du fichier pour nous :+Maintenant, à chaque fois que nous souhaitons compiler le fichier, nous pourrions utiliser la commande make pour exécuter le contenu du fichier :
  
 $ make bonjour $ make bonjour
Ligne 331: Ligne 331:
 qt4-default qt4-qmake** qt4-default qt4-qmake**
  
-Comme vous vous en doutez, pour simplifier le processus de compilation du noyau Linux, à la fois le compilateur et l'environnement make de construction sont largement utilisés. C'est pourquoi nous aurons besoin d'avoir installé non seulement le compilateur C lui-même, mais aussi plusieurs programmes utilitaires : GNU make lui-même, un décompresseur bzip, etc. Les paquets suivants seront nécessaires à un certain moment dans le processus :+Comme vous vous en doutez, pour simplifier le processus de compilation du noyau Linux, le compilateur et l'environnement make de construction sont tous les deux largement utilisés. C'est pourquoi nous aurons besoin d'avoir installé non seulement le compilateur C lui-même, mais aussi plusieurs programmes utilitaires : GNU make lui-même, un décompresseur bzip, etc. Les paquets suivants seront nécessaires à un certain moment dans le processus :
  
 gcc binutils make bzip2 coreutils gcc binutils make bzip2 coreutils
Ligne 371: Ligne 371:
 libgtk2.0-dev libglib2.0-dev libglade2-dev libgtk2.0-dev libglib2.0-dev libglade2-dev
  
-Enfin, ma préférence pour configurer le noyau va à l'interfaces « curses » :+Enfin, ma préférence pour configurer le noyau va à l'interface « curses » :
  
 make menuconfig make menuconfig
Ligne 379: Ligne 379:
 ncurses-dev ncurses-dev
  
-Maintenant que nous avons tous les morceaux dont nous aurons besoin, dans la prochaine partie de cette série, nous allons passer en revue les options de compilation disponibleset terminer en compilant notre premier noyau.+Maintenant que nous avons tous les morceaux dont nous aurons besoin, dans la prochaine partie de cette série, nous allons passer en revue les options de compilation disponibles et terminer en compilant notre premier noyau.
  
issue89/labo_linux_2.1423584572.txt.gz · Dernière modification : 2015/02/10 17:09 de auntiee