Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
tutoriel:compilation_croisee [Le 12/02/2010, 09:28] scholi français |
tutoriel:compilation_croisee [Le 19/01/2021, 10:35] amiralgaby structure des titres rectifié et ajout d'un lien vers un tutoriel |
||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
Pour cela, nous allons commencer par compiler... un compilateur ! Mais attention, il sera BRUT c'est-à-dire sans aucune bibliothèque. On pourra alors compiler le kernel Linux ou une bibliothèque. | Pour cela, nous allons commencer par compiler... un compilateur ! Mais attention, il sera BRUT c'est-à-dire sans aucune bibliothèque. On pourra alors compiler le kernel Linux ou une bibliothèque. | ||
- | Exceptions : le compilateur pour Windows(r) existe en paquets, pas besoin de le re-compiler, [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **mingw32**. Pour linux 32 bits vers 64 et vice-versa, il existe aussi des paquets : lib64(32)gcc1 et libc6-dev-amd64(i386). Il suffit de les installer pour aboutir à l'équivalent de ce que nous allons faire ici à la main. | + | Exceptions : le compilateur pour Windows(r) existe en paquets, pas besoin de le re-compiler, [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>mingw-w64]]**. Pour linux 32 bits vers 64 et vice-versa, il existe aussi des paquets : lib64(32)gcc1 et libc6-dev-amd64(i386). Il suffit de les installer pour aboutir à l'équivalent de ce que nous allons faire ici à la main. |
- | Pour la compilation croisée vers une architecture arm un petit scripte vous est présenté dans l'article [[Xcompile_arm|Compilation croisée pour ARM]] | + | Pour la compilation croisée vers une architecture arm un petit script vous est présenté dans l'article [[Xcompile_arm|Compilation croisée pour ARM]] |
===== Prérequis ===== | ===== Prérequis ===== | ||
Ligne 17: | Ligne 17: | ||
Si vous vouler compiler pour Windows(r) ou pour un 32/64 bits croisé, | Si vous vouler compiler pour Windows(r) ou pour un 32/64 bits croisé, | ||
- | rendez-vous à la rubrique utilisation... | + | rendez-vous à sur la page [[tutoriel:comment_utiliser_mingw32_pour_faire_des_executables_windows|Comment utiliser MingW[32|64] pour faire des exécutables Windows ?]] |
Avoir téléchargé les sources de **[[http://ftp.gnu.org/gnu/binutils/|binutils]]** et **[[http://ftp.gnu.org/gnu/gcc/|gcc]]**. Prendre la dernière version ne devrait pas faire de mal. | Avoir téléchargé les sources de **[[http://ftp.gnu.org/gnu/binutils/|binutils]]** et **[[http://ftp.gnu.org/gnu/gcc/|gcc]]**. Prendre la dernière version ne devrait pas faire de mal. | ||
Ligne 30: | Ligne 30: | ||
Décompresser l'archive téléchargée précédemment et aller dans le dossier créé. | Décompresser l'archive téléchargée précédemment et aller dans le dossier créé. | ||
- | == configuration == | + | === configuration === |
Configurer la compilation avec la commande : | Configurer la compilation avec la commande : | ||
Ligne 39: | Ligne 39: | ||
On peut utiliser l'option "prefix" pour configurer le dossier de base de l'installation mais étant donné que les exécutables créés seront tous précédés de l'architecture voulue, on peut tranquillement les mettre avec les autres sinon il faudrait configurer le PATH pour savoir où les chercher. | On peut utiliser l'option "prefix" pour configurer le dossier de base de l'installation mais étant donné que les exécutables créés seront tous précédés de l'architecture voulue, on peut tranquillement les mettre avec les autres sinon il faudrait configurer le PATH pour savoir où les chercher. | ||
- | == compilation == | + | === compilation === |
Il suffit de lancer la commande : | Il suffit de lancer la commande : | ||
make all | make all | ||
- | == installation == | + | === installation === |
Avec les droits super-utilisateur si on veut installer dans les parties système (option "prefix") : | Avec les droits super-utilisateur si on veut installer dans les parties système (option "prefix") : | ||
Ligne 54: | Ligne 54: | ||
Décompresser l'archive téléchargée précédemment et aller dans le dossier créé. | Décompresser l'archive téléchargée précédemment et aller dans le dossier créé. | ||
- | == configuration == | + | === configuration === |
Configurer la compilation avec la commande : | Configurer la compilation avec la commande : | ||
Ligne 63: | Ligne 63: | ||
Si on veut le C++, il faut le rajouter aux langages, après c : --enable-languages=c,c++ | Si on veut le C++, il faut le rajouter aux langages, après c : --enable-languages=c,c++ | ||
- | == compilation == | + | === compilation === |
Il suffit de lancer la commande : | Il suffit de lancer la commande : | ||
make all-gcc | make all-gcc | ||
- | == installation == | + | === installation === |
Avec les droits super-utilisateur si on veut installer dans les parties système (option "prefix") : | Avec les droits super-utilisateur si on veut installer dans les parties système (option "prefix") : | ||
Ligne 85: | Ligne 85: | ||
Pour les paquets installés Linux 32/64 croisé il faut rajouter l'argument "-m64(32)" à la ligne de gcc. De plus certaines bibliothèques existent en paquets, voir tous les paquets "lib64(32)*". | Pour les paquets installés Linux 32/64 croisé il faut rajouter l'argument "-m64(32)" à la ligne de gcc. De plus certaines bibliothèques existent en paquets, voir tous les paquets "lib64(32)*". | ||
- | == Le kernel == | + | ==== Le kernel ==== |
Exemple de ligne de commande pour compiler le kernel Linux où c'est plus compliqué si on veut utiliser make-kpkg : | Exemple de ligne de commande pour compiler le kernel Linux où c'est plus compliqué si on veut utiliser make-kpkg : |