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 21/11/2017, 17:50]
fabux {{tag>tutoriel}}
tutoriel:xcompile_arm [Le 01/12/2020, 07:36] (Version actuelle)
fbo25
Ligne 2: Ligne 2:
 ----- -----
 ====== 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).
  • tutoriel/xcompile_arm.1511283004.txt.gz
  • Dernière modification: Le 21/11/2017, 17:50
  • par fabux