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édentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:xcompile_arm [Le 06/10/2011, 16:57]
92.162.94.174 [Script]
tutoriel:xcompile_arm [Le 01/12/2020, 07:36] (Version actuelle)
fbo25
Ligne 1: Ligne 1:
 +{{tag>​tutoriel compilation programmation}}
 +-----
 ====== Compilation croisée (cross-compiling) pour architecture arm ====== ====== Compilation croisée (cross-compiling) pour architecture arm ======
-Ceci est un article détaillé de [[compilation_croisée]] pour architecture arm! L'​article cité précédemment donne la plus part des indications nécessaires. Il y a juste une lacune et une erreur.+ 
 +<note important>​Les informations fournies après cet encadré sont obsolètes. Sur Groovy (et sans doute sur des versions antérieures),​ pour compiler pour une architecture arm, il suffit d'​installer les paquets gcc-arm-linux-gnueabihf (architecture armhf) et/ou gcc-arm-linux-gnueabi (armel). 
 +Si vous avez besoin de librairies ou d'​en-têtes supplémentaires,​ un certain nombre d'​entre eux sont sûrement déjà disponibles dans votre configuration actuelle et peuvent être installés directement (exemple libc6 pour armhf est disponible dans les paquets : libc6-armhf-cross et libc6-dev-armhf-cross). 
 + 
 +Cependant, si vous avez besoin d'une librairie non disponible de base, il faut modifier sa configuration apt et activer le "​Multiarch"​. Procédure : 
 + 
 +Editer le fichier /​etc/​apt/​sources.list ainsi que tous les fichiers dans /​etc/​apt/​sources.list.d pour préciser la ou les architecture(s) **actuelle(s)** entre crochets. Il est inutile de le faire pour les "​deb-src"​ (le code source n'a pas d'​architecture). Exemple : 
 +<​file>​ 
 +deb [arch=amd64,​i386] http://​xxxxxx groovy restricted main 
 +deb [arch=amd64,​i386] http://​xxxxxx groovy-updates restricted main 
 +deb-src http://​xxxxxx groovy-updates universe multiverse restricted main 
 +... 
 +</​file>​ 
 + 
 +Contrôler que tout va bien en lançant une mise à jour : 
 +<file bash>​sudo apt update</​file>​ 
 + 
 +Ensuite, ajouter l'​architecture souhaitée. Exemple pour ajouter une architecture armhf : 
 +<file bash>​sudo dpkg --add-architecture armhf</​file>​ 
 + 
 +Créer le fichier qui va lister les sources pour la nouvelle architecture dans /​etc/​sources.list.d . Exemple : 
 +<file bash>​sudo vi /​etc/​apt/​sources.list.d/​ubuntu-armhf.list</​file>​ 
 + 
 +Y ajouter la liste des sources en précisant l'​architecture. Exemple pour armhf : 
 +<​file>​ 
 +deb [arch=armhf] http://​ports.ubuntu.com/​ groovy main universe restricted 
 +deb [arch=armhf] http://​ports.ubuntu.com/​ groovy-updates main universe restricted 
 +deb [arch=armhf] http://​ports.ubuntu.com/​ groovy-backports main restricted 
 +deb [arch=armhf] http://​ports.ubuntu.com/​ groovy-security main restricted 
 +deb [arch=armhf] http://​ports.ubuntu.com/​ groovy-security universe 
 +deb [arch=armhf] http://​ports.ubuntu.com/​ groovy-security multiverse 
 +</​file>​ 
 + 
 +Enregistrer et quitter l'​éditeur puis lancer une actualisation de dépôts : 
 +<file bash>​sudo apt update</​file>​ 
 + 
 +Vous pouvez désormais installer les paquets spécifiques à l'​architecture en la précisant après le nom du paquet, séparé par un ":"​. Exemple pour installer le paquet libssl-dev pour l'​architecture armhf : 
 +<file bash>​sudo apt install libssl-dev:​armhf</​file>​ 
 + 
 +Source : https://​wiki.debian.org/​fr/​Multiarch/​HOWTO 
 + 
 +Afin de construire des sources en C et Makefile pour une architecture armhf, en général, au lieu de "​make"​ tout court, il suffit d'​utiliser : 
 +<file bash>​make CC=arm-linux-gnueabihf-gcc</​file>​ 
 + 
 +Pour des sources C++ : 
 +<file bash>​make CXX=arm-linux-gnueabihf-g++</​file>​ 
 + 
 +----- Les informations fournies après cette ligne sont obsolètes ----------------------------- 
 + 
 +</​note>​ 
 + 
 + 
 +Ceci est un article détaillé de [[compilation_croisée]] pour architecture arm! L'​article cité précédemment donne la plupart ​des indications nécessaires. Il y a juste une lacune et une erreur.
 La lacune est qu'il faut installer les sources pour [[http://​ftp.gnu.org/​gnu/​mpfr|MPFR]] et le bug est qu'il manque deux accolades dans un fichier source de gcc (4.4.1). La lacune est qu'il faut installer les sources pour [[http://​ftp.gnu.org/​gnu/​mpfr|MPFR]] et le bug est qu'il manque deux accolades dans un fichier source de gcc (4.4.1).
 Pour vous faciliter la tâche et vous permettre de boire un café de plus aujourd'​hui,​ je vous présente un petit script qui télécharge,​ compile et installe le tout tout seul. Pour vous faciliter la tâche et vous permettre de boire un café de plus aujourd'​hui,​ je vous présente un petit script qui télécharge,​ compile et installe le tout tout seul.
Ligne 7: Ligne 61:
  
 ===== Script ===== ===== Script =====
 +<file bash>
   #!/bin/bash   #!/bin/bash
   ​   ​
Ligne 55: Ligne 110:
   rm -f gcc-4.4.3.tar.bz2   rm -f gcc-4.4.3.tar.bz2
   rm -f mpfr-2.4.2.tar.bz2   rm -f mpfr-2.4.2.tar.bz2
 +</​file>​
 +Il vous faudra éventuellement [[:​tutoriel:​comment_installer_un_paquet|installer deux paquets]] supplémentaires AVANT de relancer cette installation si celle-ci échoue à savoir :
 +  * s'il vous manque gmp => **[[apt>​lib32gmp3-dev]]**
 +  * s'il vous manque MPC  => **[[apt>​libmpc-dev]]**
 +relancez le script et tout devrait s'​achever correctement.
  • tutoriel/xcompile_arm.1317913074.txt.gz
  • Dernière modification: Le 15/12/2011, 15:21
  • (modification externe)