Tutoriel Cargo
Dans le développement Rust, presque tous les projets sont gérés et construits avec Cargo, car il fournit un flux de travail pratique et des fonctionnalités puissantes, rendant le développement Rust plus efficace et fiable.
Qu'est-ce que Cargo
Cargo est le système de build officiel et le gestionnaire de paquets de Rust. Il sert principalement deux objectifs :
Il sert principalement deux objectifs :
Gestion de projet: Cargo est utilisé pour créer, construire et gérer des projets Rust. Avec Cargo, vous pouvez facilement créer de nouveaux projets, gérer les dépendances du projet et effectuer des opérations telles que la construction, l'exécution et les tests du projet.
Gestionnaire de paquets: Cargo agit également comme gestionnaire de paquets de Rust. Il permet aux développeurs d'introduire et de gérer des dépendances (telles que des bibliothèques tierces) dans leurs projets, assurant la gestion des versions et la compatibilité de ces dépendances.
Principales fonctionnalités et fonctions de Cargo :
-
Gestion des dépendances: Cargo utilise le
Cargo.tomlfichier pour gérer les dépendances du projet. Ce fichier liste toutes les bibliothèques externes requises par le projet et leurs versions. -
Système de build: Cargo utilise le compilateur Rust (rustc) pour construire des projets, gérant automatiquement la compilation et l'édition de liens des dépendances.
-
Registre de paquets: Cargo interagit aveccrates.io, le registre de paquets de la communauté Rust, permettant aux développeurs de rechercher, ajouter et gérer des bibliothèques tierces.
-
Configuration de compilation: Grâce au
Cargo.tomletCargo.lockfichier, Cargo permet aux développeurs de configurer des options de compilation telles que les options du compilateur, les fonctionnalités et les plateformes cibles. -
Modèles de projet: Cargo fournit des modèles pour créer de nouveaux projets. Vous pouvez rapidement démarrer un nouveau projet avec la
cargo newcommande. -
Tests: Cargo fournit une commande simple,
cargo testpour exécuter les tests unitaires du projet. -
Analyse comparative: Cargo prend en charge l'utilisation de la
cargo benchcommande d'analyse comparative. -
Publication: Grâce à la
cargo publishcommande, les développeurs peuvent publier leurs bibliothèques sur crates.io pour que d'autres développeurs puissent les utiliser. -
Scripts de compilation personnalisés: Cargo permet l'utilisation de scripts de compilation personnalisés pour gérer des exigences de compilation plus complexes.
-
Projets multi-cibles: Cargo prend en charge la définition de plusieurs cibles dans un même projet, telles que les exécutables, les bibliothèques, les tests et les benchmarks.
-
Compilations multiplateformes: Cargo prend en charge la compilation de programmes Rust sur plusieurs plateformes, notamment Windows, macOS, Linux et divers systèmes embarqués.
-
Cache de compilation: Pour accélérer les compilations, Cargo utilise un cache de compilation pour stocker les dépendances compilées.
-
Travail hors ligne: Cargo prend en charge le travail sans connexion Internet, en utilisant automatiquement les dépendances mises en cache localement.
-
Système de plugins: Cargo permet aux développeurs d'écrire des plugins pour étendre ses fonctionnalités.
-
Variables d'environnement: Cargo prend en charge la redéfinition du comportement par défaut de compilation et d'exécution via des variables d'environnement.
Fonctionnalités de Cargo
Outre la création de projets, Cargo dispose également d'une série de fonctions telles que la compilation et l'exécution de projets. La compilation et l'exécution correspondent aux commandes suivantes :
cargo new <project-name>: Créer un nouveau projet Rust.cargo build: Compiler le projet actuel.cargo run: Compiler et exécuter le projet actuel.cargo check: Vérifier les erreurs de syntaxe et de type du projet actuel.cargo test: Exécuter les tests unitaires du projet actuel.cargo update: Mettre à jour les dépendances spécifiées dans Cargo.toml vers leurs dernières versions.cargo --help: Afficher les informations d'aide de Cargo.cargo publish: Publier le projet Rust sur crates.io.cargo clean: Nettoyer les fichiers et répertoires temporaires générés pendant le processus de compilation.
Configuration d'un projet Rust dans VSCode
Cargo est un excellent outil de compilation. Si vous associez VSCode à Cargo, VSCode deviendra un environnement de développement très pratique.
Dans le chapitre précédent, nous avons créé le projet greeting. Maintenant, ouvrons le dossier greeting avec VSCode (Remarque : pas example-greeting)。
Après avoir ouvert greeting, créez un nouveau dossier à l'intérieur de celui-ci.vscode(Remarque : le point avant vscode ; si ce dossier existe déjà, vous n'avez pas besoin de le créer). Dans le dossier .vscode nouvellement créé, créez deux fichiers, tasks.json et launch.json, avec le contenu suivant :
Fichier tasks.json
fichier launch.json (applicable aux systèmes Windows)
fichier launch.json (applicable aux systèmes Linux)
fichier launch.json (applicable aux systèmes Mac OS)
Cliquez ensuite sur "Run" dans la barre latérale gauche de VSCode.
Si vous utilisez MSVC, sélectionnez "(Windows) Launch".
Si vous utilisez MinGW et que GDB est installé, sélectionnez "(gdb) Launch". Avant de lancer avec gdb, veillez à renseigner "miDebuggerPath" dans launch.json.

Le programme commencera alors le débogage. La sortie d'exécution apparaîtra dans la "Debug Console" :

Débogage de Rust dans VSCode
La méthode de débogage des programmes est similaire à celle d'autres environnements. Cliquez simplement sur le point rouge à gauche du numéro de ligne pour définir un point d'arrêt. Lorsqu'un point d'arrêt est rencontré pendant l'exécution, le programme se met en pause, permettant aux développeurs de surveiller en temps réel les valeurs des variables.
