Ziel
Dieses Tutorial beschreibt die Einrichtung einer vollständigen Rust-Entwicklungsumgebung und erstellt ein erstes Hello-World-Projekt.
Am Ende sind folgende Fähigkeiten vorhanden:
Rust Compiler installieren
Cargo Build-System verwenden
Rust-Projekte erstellen
Anwendungen kompilieren und ausführen
Tests ausführen
Entwicklungsumgebung mit VS Code einrichten
Voraussetzungen
Unterstützte Betriebssysteme:
Linux
Windows 10/11
macOS
Empfohlen:
Git installiert
VS Code installiert
Kommandozeilenkenntnisse
Installation von Rust
Rust wird über das offizielle Tool rustup installiert.
Linux / macOS
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | shDanach die Shell neu starten:
source "$HOME/.cargo/env"Installation prüfen:
rustc --version
cargo --versionBeispiel:
rustc 1.88.0
cargo 1.88.0Windows
Installer herunterladen:
Danach PowerShell öffnen:
rustc --version
cargo --versionBei Windows wird zusätzlich benötigt:
Visual Studio Build Tools
MSVC C++ Compiler
Windows SDK
Installation über:
rustup default stable-x86_64-pc-windows-msvcRust Toolchain verwalten
Aktuelle Toolchain anzeigen:
rustup showStable-Version aktivieren:
rustup default stableUpdates installieren:
rustup updateEntwicklungswerkzeuge installieren
Empfohlene Komponenten:
rustup component add rustfmt
rustup component add clippyPrüfen:
rustup component list --installedVS Code Einrichtung
Installiere folgende Extensions:
rust-analyzer
CodeLLDB
Even Better TOML
Empfohlene Einstellungen:
{
"rust-analyzer.checkOnSave.command": "clippy",
"editor.formatOnSave": true
}Erstes Rust Projekt erstellen
Rust verwendet Cargo als Build-System und Package Manager.
Neues Projekt erzeugen:
cargo new hello_worldProjekt wechseln:
cd hello_worldDie Struktur:
hello_world
|
+-- Cargo.toml
|
+-- src
|
+-- main.rsCargo.toml
Die Datei beschreibt das Projekt:
[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"
# [dependencies]Hello World Implementierung
Datei: src/main.rs
Inhalt:
fn main() {
println!("Hello, Rust!");
}Programm bauen
Debug Build:
cargo buildDas erzeugte Binary liegt unter target/debug/hello_world.
Programm starten
Direkt mit Cargo:
cargo runAusgabe:
Hello, Rust!Release Build
Für optimierte Builds:
cargo build --releaseDas erzeugte Binary liegt unter target/release/hello_world.
Release Builds enthalten:
Optimierungen
kleinere Laufzeit
bessere Performance
Rust Formatierung
Automatische Formatierung:
cargo fmtBeispiel:
fn main() {
println!("Hello, Rust!");
}Code Analyse mit Clippy
Clippy findet typische Fehler:
cargo clippyBeispiel:
warning: this expression borrows a value that is already borrowedUnit Tests
Rust besitzt ein integriertes Testframework.
Beispiel:
#[cfg(test)]
mod tests {
#[test]
fn hello_test() {
assert_eq!(2 + 2, 4);
}
}Tests starten:
cargo testAusgabe:
test result: okAbhängigkeiten hinzufügen
Beispiel:
Cargo.toml
[dependencies]
serde = "1.0"Danach:
cargo buildCargo lädt automatisch:
Crates
Versionen
Abhängigkeiten
Cross Compilation Grundlagen
Installierte Targets anzeigen:
rustup target listBeispiel ARM64:
rustup target add aarch64-unknown-linux-gnuBuild:
cargo build --target aarch64-unknown-linux-gnuTypische Embedded Targets:
thumbv7em-none-eabihf
thumbv8m.main-none-eabihf
riscv32imac-unknown-none-elfEmbedded Rust Vorbereitung
Zusätzliche Tools:
cargo install cargo-embed
cargo install cargo-binutilsARM Toolchain:
rustup target add thumbv7em-none-eabihfBeispielplattformen:
STM32
nRF52
ESP32
RP2040
Debugging
Mit GDB:
rust-gdb target/debug/hello_worldVS Code verwendet:
CodeLLDB
OpenOCD
J-Link
Typischer Entwicklungsworkflow
Code ändern
|
cargo fmt
|
cargo clippy
|
cargo test
|
cargo build --releaseZusammenfassung
Nach diesem Tutorial steht eine vollständige Rust Entwicklungsumgebung bereit.
Wichtige Befehle:
| Befehl | Beschreibung |
|---|---|
cargo new | Projekt erstellen |
cargo build | Kompilieren |
cargo run | Starten |
cargo test | Tests ausführen |
cargo fmt | Formatieren |
cargo clippy | Code Analyse |
rustup update | Toolchain aktualisieren |
Nächste Schritte
Für Embedded Systems Entwickler:
no_std Rust
HAL Libraries
Device Crates
Embedded Trait Architecture
Rust Treiberentwicklung
Rust AUTOSAR-nahe Abstraktionsschichten