{"id":4211,"date":"2023-08-09T15:50:39","date_gmt":"2023-08-09T13:50:39","guid":{"rendered":"http:\/\/blogperso.union31.fr\/?p=4211"},"modified":"2023-08-09T19:48:26","modified_gmt":"2023-08-09T17:48:26","slug":"rust-prise-de-notes","status":"publish","type":"post","link":"https:\/\/blogperso.union31.fr\/?p=4211","title":{"rendered":"Rust : prise de notes"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Sommaire<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#1_Installation_Desinstallation\" >1. Installation \/ D\u00e9sinstallation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#11_Methode_1_via_apt\" >1.1 M\u00e9thode 1 : via apt<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#111_Installation_de_Rust\" >1.1.1 Installation de Rust<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#112_Desinstallation\" >1.1.2 D\u00e9sinstallation<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#12_Methode_2_a_la_main\" >1.2 M\u00e9thode 2 : \u00e0 la main<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#121_Installation_manuelle\" >1.2.1 Installation manuelle<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#122_Desinstallation_manuelle\" >1.2.2 D\u00e9sinstallation manuelle<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#II_Mon_premier_programme\" >II Mon premier programme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#III_CARGO_utilitaire_de_gestion_de_projets_Rust\" >III CARGO : utilitaire de gestion de projets Rust<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#III1_Presentation\" >III.1 Pr\u00e9sentation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#III2_Creation_dun_projet\" >III.2 Cr\u00e9ation d&rsquo;un projet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#III3_Compiler_le_projet\" >III.3 Compiler le projet :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#III4_Compiler_et_executer_le_projet\" >III.4 Compiler et ex\u00e9cuter le projet :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#III5_Compiler_mais_ne_pas_creer_executable\" >III.5 Compiler mais ne pas cr\u00e9er ex\u00e9cutable<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#III6_Creer_une_version_a_distribuer\" >III.6 Cr\u00e9er une version \u00e0 distribuer<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blogperso.union31.fr\/?p=4211\/#IV_VS_CODE\" >IV VS CODE<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Installation_Desinstallation\"><\/span>1. Installation \/ D\u00e9sinstallation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"11_Methode_1_via_apt\"><\/span>1.1 M\u00e9thode 1 : via apt<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"111_Installation_de_Rust\"><\/span>1.1.1 Installation de Rust<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>En ligne de commande, lancer les commandes suivantes<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo apt update\nsudo apt install rustc<\/code><\/pre>\n\n\n\n<p>Pour v\u00e9rifier la version install\u00e9e :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">rustc -V<\/code><\/pre>\n\n\n\n<p>Ce qui donne ici :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">rustc 1.66.1 (90743e729 2023-01-10) (built from a source tarball)<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"112_Desinstallation\"><\/span>1.1.2 D\u00e9sinstallation<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Lancer la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo apt remove rustc<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"12_Methode_2_a_la_main\"><\/span>1.2 M\u00e9thode 2 : \u00e0 la main<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"121_Installation_manuelle\"><\/span>1.2.1 Installation manuelle<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Il est possible de vouloir une des derni\u00e8res versions de Rust, plus \u00e9volu\u00e9e que celle fournie par la distribution Ubuntu (via apt)<\/p>\n\n\n\n<p>Ainsi comme on peut le voir ci dessous la derni\u00e8re version stable disponible est  \u00ab\u00a01.71.0\u00a0\u00bb alors que celle install\u00e9e via apt est \u00ab\u00a01.66.1\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"321\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-3-1024x321.png\" alt=\"\" class=\"wp-image-4224\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-3-1024x321.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-3-300x94.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-3-768x240.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-3.png 1316w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Pour installer manuellement, lancer la ligne de commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">curl https:\/\/sh.rustup.rs -sSf | sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00e0 l&rsquo;adresse https:\/\/sh.rustup.rs il y a un script Bash d&rsquo;installation de Rust (rustup-init.sh)<\/li>\n\n\n\n<li>curl est un outil permettant de t\u00e9l\u00e9charger un contenu web (pas que..)\n<ul class=\"wp-block-list\">\n<li>options curl :\n<ul class=\"wp-block-list\">\n<li>f : si erreur pas d&rsquo;affichage<\/li>\n\n\n\n<li>s : mode silencieux<\/li>\n\n\n\n<li>S : montrer les erreurs<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Ainsi curl va t\u00e9l\u00e9charger le contenu du script bash \u00ab\u00a0rustup-init.sh\u00a0\u00bb \u00e0 l&rsquo;adresse \u00ab\u00a0https:\/\/sh.rustup.rs\u00a0\u00bb puis une fois fini fait execut\u00e9 ce script \u00e0 \u00ab\u00a0sh\u00a0\u00bb ( | sh).<\/li>\n<\/ul>\n\n\n\n<p>Ce qui propose ceci :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background\">Welcome to Rust!\n\nThis will download and install the official compiler for the Rust\nprogramming language, and its package manager, Cargo.\n\nRustup metadata and toolchains will be installed into the Rustup\nhome directory, located at:\n\n  \/home\/xavior\/.rustup\n\nThis can be modified with the RUSTUP_HOME environment variable.\n\nThe Cargo home directory is located at:\n\n  \/home\/xavior\/.cargo\n\nThis can be modified with the CARGO_HOME environment variable.\n\nThe cargo, rustc, rustup and other commands will be added to\nCargo's bin directory, located at:\n\n  \/home\/xavior\/.cargo\/bin\n\nThis path will then be added to your PATH environment variable by\nmodifying the profile files located at:\n\n  \/home\/xavior\/.profile\n  \/home\/xavior\/.bashrc\n\nYou can uninstall at any time with rustup self uninstall and\nthese changes will be reverted.\n\nCurrent installation options:\n\n\n   default host triple: x86_64-unknown-linux-gnu\n     default toolchain: stable (default)\n               profile: default\n  modify PATH variable: yes\n\n1) Proceed with installation (default)\n2) Customize installation\n3) Cancel installation\n>\n<\/pre>\n\n\n\n<p>En choisissant 1 pour l&rsquo;installation par d\u00e9faut :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background\">info: profile set to 'default'\ninfo: default host triple is x86_64-unknown-linux-gnu\ninfo: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'\ninfo: latest update on 2023-08-03, rust version 1.71.1 (eb26296b5 2023-08-03)\ninfo: downloading component 'cargo'\ninfo: downloading component 'clippy'\ninfo: downloading component 'rust-docs'\n 13.6 MiB \/  13.6 MiB (100 %)  12.0 MiB\/s in  1s ETA:  0s\ninfo: downloading component 'rust-std'\ninfo: downloading component 'rustc'\n 63.5 MiB \/  63.5 MiB (100 %)  25.5 MiB\/s in  2s ETA:  0s\ninfo: downloading component 'rustfmt'\ninfo: installing component 'cargo'\ninfo: installing component 'clippy'\ninfo: installing component 'rust-docs'\n 13.6 MiB \/  13.6 MiB (100 %)   8.4 MiB\/s in  1s ETA:  0s\ninfo: installing component 'rust-std'\n 26.1 MiB \/  26.1 MiB (100 %)  12.7 MiB\/s in  1s ETA:  0s\ninfo: installing component 'rustc'\n 63.5 MiB \/  63.5 MiB (100 %)  14.5 MiB\/s in  4s ETA:  0s\ninfo: installing component 'rustfmt'\ninfo: default toolchain set to 'stable-x86_64-unknown-linux-gnu'\n\n  stable-x86_64-unknown-linux-gnu installed - rustc 1.71.1 (eb26296b5 2023-08-03)\n\n\nRust is installed now. Great!\n\nTo get started you may need to restart your current shell.\nThis would reload your PATH environment variable to include\nCargo's bin directory ($HOME\/.cargo\/bin).\n\nTo configure your current shell, run:\nsource \"$HOME\/.cargo\/env\"\n<\/pre>\n\n\n\n<p>Il reste \u00e0 configurer la variable environnement du PATH pour inclure le r\u00e9pertoire binaire CARGO :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">source \"$HOME\/.cargo\/env\"<\/code><\/pre>\n\n\n\n<p>La commande ne produit rien en terme d&rsquo;affichage. En revanche, le fichier ~.profile a bien \u00e9t\u00e9 modifi\u00e9 et il contient maintenant la variable environnement pour Rust (PATH=\/home\/xavior\/.cargo\/bin&#8230;..).<\/p>\n\n\n\n<p>Maintenant, v\u00e9rification finale :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">rustc -V<\/code><\/pre>\n\n\n\n<p>ce qui donne :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background\">rustc 1.71.1 (eb26296b5 2023-08-03)<\/pre>\n\n\n\n<p>La derni\u00e8re version stable a \u00e9t\u00e9 install\u00e9e.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"122_Desinstallation_manuelle\"><\/span>1.2.2 D\u00e9sinstallation manuelle<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Lancer la ligne de commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">rustup self uninstall<\/code><\/pre>\n\n\n\n<p>Puis confirmer :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background\">\nThanks for hacking in Rust!\n\nThis will uninstall all Rust toolchains and data, and remove\n$HOME\/.cargo\/bin from your PATH environment variable.\n\nContinue? (y\/N) <\/pre>\n\n\n\n<p>Et c&rsquo;est fini &#8230;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II_Mon_premier_programme\"><\/span>II Mon premier programme<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Cr\u00e9er le r\u00e9pertoire de votre choix et aller dedans.<\/p>\n\n\n\n<p>Cr\u00e9er un fichier \u00ab\u00a0main.rs\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">touch main.rs<\/code><\/pre>\n\n\n\n<p>Le remplir comme suit :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-blush-light-purple-gradient-background has-background\">fn main() {\n    println!(\"Hello world!\")\n}<\/pre>\n\n\n\n<p>On va compiler le fichier :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">rustc main.rs<\/code><\/pre>\n\n\n\n<p>Ce qui a effet de cr\u00e9er le fichier ex\u00e9cutable comme suivant :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -als\ntotal 4212\n   4 drwxrwxr-x 2 xavior xavior    4096 ao\u00fbt   9 17:07 .\n   4 drwxrwxr-x 3 xavior xavior    4096 ao\u00fbt   9 17:02 ..\n<strong>4200 -rwxrwxr-x 1 xavior xavior 4298456 ao\u00fbt   9 17:07 main<\/strong>\n   4 -rw-rw-r-- 1 xavior xavior      44 ao\u00fbt   9 17:06 main.rs\n<\/pre>\n\n\n\n<p>Enfin, il n&rsquo;y plus qu&rsquo;\u00e0 l\u2019ex\u00e9cuter :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">.\/main<\/code><\/pre>\n\n\n\n<p>ce qui affiche :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background\">Hello world!<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III_CARGO_utilitaire_de_gestion_de_projets_Rust\"><\/span>III CARGO : utilitaire de gestion de projets Rust<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III1_Presentation\"><\/span>III.1 Pr\u00e9sentation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Cet utilitaire va permettre :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>de compiler le code<\/li>\n\n\n\n<li>de t\u00e9l\u00e9charger les paquets des biblioth\u00e8ques \u00e0 utiliser<\/li>\n\n\n\n<li>de compiler les biblioth\u00e8ques<\/li>\n<\/ul>\n\n\n\n<p>Nous allons utiliser VS Code pour mieux voir ce qui se passe quant \u00e0 l&rsquo;utilisation<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III2_Creation_dun_projet\"><\/span>III.2 Cr\u00e9ation d&rsquo;un projet<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Ouvrir VS Code \u00e0 la racine du r\u00e9pertoire des futurs projets Rust :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"455\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-4-1024x455.png\" alt=\"\" class=\"wp-image-4246\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-4-1024x455.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-4-300x133.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-4-768x341.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-4.png 1218w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>puis en ligne de commande pour cr\u00e9er un nouveau projet :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">cargo new hello_projet<\/code><\/pre>\n\n\n\n<p>On voit ainsi la nouvelle structure du projet :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"332\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-5-1024x332.png\" alt=\"\" class=\"wp-image-4247\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-5-1024x332.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-5-300x97.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-5-768x249.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-5.png 1485w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Les fichiers sources seront mis dans hello_projet\/src\/.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III3_Compiler_le_projet\"><\/span>III.3 Compiler le projet :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Pour compiler, allez \u00e0 la racine du projet et taper :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">cargo build<\/code><\/pre>\n\n\n\n<p>Ce qui donne visuellement :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"369\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-6-1024x369.png\" alt=\"\" class=\"wp-image-4250\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-6-1024x369.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-6-300x108.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-6-768x277.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-6-1536x554.png 1536w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-6.png 1680w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III4_Compiler_et_executer_le_projet\"><\/span>III.4 Compiler et ex\u00e9cuter le projet :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Pour executer (et compiler), taper la commande uivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">cargo run<\/code><\/pre>\n\n\n\n<p>Ce qui donne visuellement :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"394\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-7-1024x394.png\" alt=\"\" class=\"wp-image-4253\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-7-1024x394.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-7-300x115.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-7-768x295.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-7-1536x590.png 1536w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-7.png 1655w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III5_Compiler_mais_ne_pas_creer_executable\"><\/span>III.5 Compiler mais ne pas cr\u00e9er ex\u00e9cutable<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>En ligne de commande :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">cargo check<\/code><\/pre>\n\n\n\n<p>ce qui donne :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"68\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-8-1024x68.png\" alt=\"\" class=\"wp-image-4256\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-8-1024x68.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-8-300x20.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-8-768x51.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-8.png 1049w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III6_Creer_une_version_a_distribuer\"><\/span>III.6 Cr\u00e9er une version \u00e0 distribuer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>En ligne de commande :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">cargo build --release<\/code><\/pre>\n\n\n\n<p>Ce qui donne visuellement :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"417\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-9-1024x417.png\" alt=\"\" class=\"wp-image-4258\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-9-1024x417.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-9-300x122.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-9-768x313.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-9.png 1486w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>L&rsquo;ex\u00e9cutable dans hello_projet\/target\/release sera optimis\u00e9 et plus rapide \u00e0 l\u2019ex\u00e9cution. En revanche, il prend plus de temps \u00e0 \u00eatre g\u00e9n\u00e9r\u00e9 pour le compilateur.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"IV_VS_CODE\"><\/span>IV VS CODE<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"has-black-color has-text-color\">plugin int\u00e9ressant dans VS CODE : <strong>rust-analyzer<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"538\" height=\"388\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-13.png\" alt=\"\" class=\"wp-image-4268\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-13.png 538w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-13-300x216.png 300w\" sizes=\"auto, (max-width: 538px) 100vw, 538px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>il permet notamment d&rsquo;avoir :<\/p>\n\n\n\n<p>l&rsquo;auto compl\u00e9mentation du code :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"717\" height=\"355\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-14.png\" alt=\"\" class=\"wp-image-4269\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-14.png 717w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2023\/08\/image-14-300x149.png 300w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<p>la possibilit\u00e9 par Click + CTRL de voir l&rsquo;int\u00e9rieur du code d&rsquo;une fonction<\/p>\n\n\n\n<p>d\u2019ex\u00e9cuter du code sans passer par la ligne de commande (placer la souris sur la fonction main)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Installation \/ D\u00e9sinstallation 1.1 M\u00e9thode 1 : via apt 1.1.1 Installation de Rust En ligne de commande, lancer les commandes suivantes Pour v\u00e9rifier la version install\u00e9e : Ce qui donne ici : rustc 1.66.1 (90743e729 2023-01-10) (built from a<\/p>\n","protected":false},"author":1,"featured_media":4263,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-4211","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-_dev"],"_links":{"self":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/4211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4211"}],"version-history":[{"count":29,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/4211\/revisions"}],"predecessor-version":[{"id":4270,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/4211\/revisions\/4270"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/media\/4263"}],"wp:attachment":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}