Commit a8ec6fbd authored by Éloïs's avatar Éloïs

Add new file

parent 7326a8bb
Title: Cross compilation poru arm
Order: 9
Date: 2018-06-09
Slug: cross-compilation-pour-arm
Authors: elois
Fonctionne sur ubuntu 16.04.
1. Ajoutez la toolchain arm :
rustup target add armv7-unknown-linux-gnueabihf
2. Installez les paquets debian suivants :
sudo apt-get install gcc-4.7-multilib-arm-linux-gnueabihf crossbuild-essential-armhf
3. indiquez a cargo quel compilateur il doit utiliser lorsqu'il compilera avec la tolchain arm, pour cela créer le fichier `~/.cargo/config` et collez y le contenu suivant :
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc-4.7"
4. Rendez vous a la racine du dépot de Duniter-Rust puis compilez avec la toolchain arm :
cd duniter-rs
cargo build --target=armv7-unknown-linux-gnueabihf --no-default-features --release
*Explication des options :
- target : indique a cargo la toolchain avec laquelle compiler.
- no-default-features : indique a cargo de ne pas inclure les features optionelles, cela permet nottament de ne pas inclure OpenSSL qui est très ifficile à cross-compiler. (OpenSSl est loin d'être indispensable, ça seule utilitée est de permettre a WS2P Privé de contacter des endpoints WS2P en https).
- release : Permet de compiler en mode release, c'est a dire avec les optimisations de code et sans les points d'entrée nécessaire à un déboggeur. SI vous omettez cette option, cargo compilera en mode debug, c'est adire sans optimisation de code et avec les points d'entrée permetant d'utiliser un déboggeur. La compilation en mode debug est plus rapide mais le binaire final est beaucoup plus gros et duniter beaucoup plus lent, a n'utiliser que pour débugger donc.
5. Votre binaire final est le fichier `durs` qui se trouve dans `target/armv7-unknown-linux-gnueabihf/release`. C'est un "binaire tout en un" vous pouvez le copier n'importe ou sur votre raspberry pi puis vous n'avez plus qu'a l'éxécuter dans un terminal.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment