Rust sur Windows : éliminer l'erreur linker 'cc' not found en 5 minutes

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Première rencontre avec le « dragon rouge »

\n\n

Vous venez de commencer à apprendre Rust. Vous avez téléchargé le compilateur, écrit votre premier hello.rs, vous lancez cargo build... Et là, le terminal explose en rouge avec le message : « linker 'cc' not found ». Familier ? Si vous travaillez sur Windows 10 en utilisant le sous-système WSL avec Debian, cette erreur est un « bonjour » classique du monde de la programmation système.

\n\n

Ne paniquez pas. Ce n'est pas un bug de Rust, c'est une particularité de la configuration de l'environnement. Dans cet article, nous allons non seulement résoudre ce problème une fois pour toutes, mais aussi parler de la manière d'optimiser le processus de compilation pour que votre code se compile plus rapidement. Car Rust est réputé pour ses performances, et nous devons donner au compilateur les meilleurs outils pour travailler.

\n\n

Pourquoi l'erreur « linker 'cc' not found » se produit-elle ?

\n\n

Pour comprendre l'ennemi, il faut le connaître. Rust est un langage compilé. Lorsque vous tapez cargo build, le compilateur rustc transforme votre code en code machine. Mais l'étape finale est l'édition de liens (assemblage des fichiers objets en un exécutable). Ce travail est effectué par un programme externe : l'éditeur de liens.

\n\n

Par défaut, sur les systèmes Linux (y compris WSL Debian), Rust recherche l'éditeur de liens cc. Il s'agit d'un lien symbolique qui pointe généralement vers gcc ou clang. Si votre système WSL n'a pas de compilateur C (GCC ou Clang) installé, le lien cc est absent. Rust ne sait pas avec quoi lier votre projet et génère une erreur fatale.

\n\n

Racine du problème : WSL Debian — installation minimale

\n

Lorsque vous installez WSL Debian depuis le Microsoft Store, vous obtenez un système nu. Il ne contient ni GCC, ni Make, ni d'autres outils de développement. Rust n'inclut pas d'éditeur de liens C — cela relève de la responsabilité de l'environnement système.

\n\n

Méthode n°1 : Solution rapide (installation de GCC)

\n\n

La manière la plus simple et la plus correcte est d'installer l'ensemble standard d'outils de développement C. Ouvrez le terminal WSL Debian et exécutez :

\n\n
sudo apt update\nsudo apt install build-essential
\n\n

Le paquet build-essential est un méta-paquet qui installe gcc, g++, make et, surtout, crée le lien /usr/bin/cc. Après l'installation, vérifiez :

\n\n
which cc\n# Devrait afficher : /usr/bin/cc
\n\n

Maintenant, relancez cargo build — l'erreur disparaîtra. Rust a trouvé l'éditeur de liens.

\n\n

Pourquoi est-ce important pour les performances ?

\n

En utilisant le GCC standard, vous obtenez un éditeur de liens stable et optimisé. Rust compilera votre projet avec un minimum de frais généraux. L'optimisation commence par les bons outils.

\n\n

Méthode n°2 : Configuration précise (installation de Clang)

\n\n

Si vous êtes fan de LLVM et Clang (et Rust utilise aussi LLVM en coulisse), vous pouvez les installer à la place de GCC. Cela peut donner un léger gain de vitesse d'édition de liens sur certains projets.

\n\n
sudo apt install clang lld\n# Créez le lien manuellement s'il n'existe pas\nsudo ln -s /usr/bin/clang /usr/bin/cc
\n\n

Vérification :

\n
cc --version\n# Devrait afficher Clang
\n\n

Important : LLD (LLVM Linker) est souvent plus rapide que le GNU ld classique. Pour les grands projets Rust, cela peut réduire le temps de compilation de 10 à 20 %. Installer Clang n'est pas seulement une correction d'erreur, c'est une optimisation des performances de compilation.

\n\n

Méthode n°3 : Solution de contournement (spécification manuelle de l'éditeur de liens)

\n\n

Il existe des situations où vous ne voulez pas installer GCC ou Clang (par exemple, sur un serveur de production avec des restrictions). Vous pouvez indiquer explicitement à Rust quel éditeur de liens utiliser. Mais attention : sans éditeur de liens installé, cette méthode ne fonctionnera pas.

\n\n

Créez un fichier ~/.cargo/config.toml (ou /.cargo/config.toml pour une configuration globale) :

\n\n
[target.x                

Blogs

Book Recommendations