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 14/10/2016, 19:21]
88.179.158.38 [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 ======
 +
 +<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. 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).
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]]** 
-Il vous faudra éventuellement installer deux paquets supplémentaires AVANT de relancer cette installation si celle-ci échoue à savoir : +  * s'il vous manque MPC  => **[[apt>libmpc-dev]]**
-  * s'il vous manque gmp => sudo apt-get install ​lib32gmp3-dev +
-  * s'il vous manque MPC  => sudo apt-get install ​libmpc-dev+
 relancez le script et tout devrait s'​achever correctement. relancez le script et tout devrait s'​achever correctement.
  • tutoriel/xcompile_arm.1476465706.txt.gz
  • Dernière modification: Le 14/10/2016, 19:21
  • par 88.179.158.38