Chaîne de compilation Rust
Les outils nécessaires pour la compilation en Rust peuvent être installés avec rustup
, qui peut venir avec votre distribution ou être installé depuis ce site web. rustup
se chargera ensuite de maintenir le compilateur et les utilitaires à jour.
Dans cette formation, nous utiliserons la chaîne de compilation stable :
$ rustup default stable
On pourra vérifier quelle(s) chaîne(s) de compilation sont installées et laquelle est sélectionnée par défaut :
$ rustup toolchain list
stable-x86_64-unknown-linux-gnu (default)
Vérification de l'installation
L'installation du compilateur lui-même peut être vérifiée en allant dans /tmp
et en créant un fichier t.rs
contenant :
fn main() { println!("Hello, world!"); }
et en exécutant dans ce même répertoire les commandes suivantes :
$ rustc t.rs
$ ./t
Hello, world!
En pratique, nous n'appellerons jamais rustc
directement, nous passerons par cargo
.
Composants additionnels
Nous utiliserons également les composants cargo
, rustfmt
et clippy
. Ceux-ci ont probablement été installés automatiquement par rustup
, mais la commande suivante permettra de s'en assurer :
$ rustup component add rustfmt clippy
On pourra vérifier quels composants sont installés :
$ rustup component list --installed
cargo-x86_64-unknown-linux-gnu
clippy-x86_64-unknown-linux-gnu
rust-docs-x86_64-unknown-linux-gnu
rust-std-x86_64-unknown-linux-gnu
rustc-x86_64-unknown-linux-gnu
rustfmt-x86_64-unknown-linux-gnu
Cibles de compilation
Rust permet de compiler nativement ou en configuration croisée, par exemple pour programmer des systèmes embarqués. Par défaut, seule la cible correspondant à l'ordinateur courant est disponible (commande exécutée sur un système Linux) :
$ rustup target list --installed
x86_64-unknown-linux-gnu
En omettant --installed
il est possible de voir quelles cibles additionnelles peuvent être installées.
$ rustup target list
aarch64-apple-darwin
aarch64-apple-ios
aarch64-apple-ios-sim
aarch64-fuchsia
aarch64-linux-android
aarch64-pc-windows-msvc
[…]
x86_64-sun-solaris
x86_64-unknown-freebsd
x86_64-unknown-illumos
x86_64-unknown-linux-gnu (installed)
x86_64-unknown-linux-gnux32
x86_64-unknown-linux-musl
x86_64-unknown-netbsd
x86_64-unknown-redox
Ce cours n'utilisant que des cibles natives il n'est pas nécessaire d'installer d'autres cibles.