77 votes

Impossible de compiler Rust hello world sous Windows : linker link.exe non trouvé

J'ai installé Rust sous Windows à partir de Page d'installation de Rust . Après l'installation, j'ai essayé d'exécuter le programme "hello world" mais j'ai obtenu l'erreur suivante.

>cargo run

Erreur

Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)

error: linker `link.exe` not found
note: The system cannot find the file specified. (os error 2)
note: the msvc targets depend on the msvc linker but `link.exe` was not found
note: please ensure that VS 2013, VS 2015 or VS 2017 was installed with the Visual C++ option
error: aborting due to previous error
error: Could not compile `helloworld`.

To learn more, run the command again with --verbose.

Code :

fn main() {
    println!("Hello, world!");
}

87voto

Zobia Kanwal Points 2451

J'ai téléchargé et installé le Outils de construction pour Visual Studio 2019 . Pendant l'installation, j'ai sélectionné le Outils C++ . Il a téléchargé près de 5 Go de données. J'ai redémarré la machine après l'installation et la compilation du code a bien fonctionné :

> cargo run
Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)
Finished dev [unoptimized + debuginfo] target(s) in 12.05s
  Running `target\debug\helloworld.exe`
Hello, world!

31voto

ocanis Points 171

Cas 1 : Utilisation du compilateur C++ win, pour le corriger vous devez réinstaller l'outil de construction VS C++. Téléchargez les outils Visual Studio 2019 Build sur le site web de Microsoft : https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16

Après le téléchargement, lors de l'installation des outils de construction, assurez-vous que vous installez les composants requis :

  1. Outils de construction C++

Ceci téléchargera les fichiers requis. Une fois que tout est installé avec succès, redémarrez et relancez votre programme rust et il compilera avec succès.

Cas2 : Cette erreur peut venir du fait que vous utilisez GCC pour compiler, pour la corriger (supposez que vous avez déjà MinGW) :

Bande en cmd :

  1. rustup uninstall toolchain stable-x86_64-pc-windows-msvc
  2. rustup toolchain install stable-x86_64-pc-windows-gnu (ou téléchargez rustup-init pour la plate-forme de votre choix à l'adresse suivante https://forge.rust-lang.org/infra/other-installation-methods.html )
  3. rustup default stable-x86_64-pc-windows-gnu

Cas 3 : Vous ne voulez pas télécharger Visual studio avec les outils de construction, installez simplement MinGw avec les paquets de développement g++ gcc, puis exécutez CASE 2

27voto

the artist Points 241

J'ai eu un problème similaire " error: linking with link.exe failed: exit code: 1 "

Pour le résoudre, j'ai fait

rustup toolchain install stable-x86_64-pc-windows-gnu

puis

rustup default stable-x86_64-pc-windows-gnu

et

cargo build
  Compiling hello v0.1.0 (C:\Users\leke\dev\rust\hello)
    Finished dev [unoptimized + debuginfo] target(s) in 1.66s

10voto

filiphagan Points 41

Le message d'erreur est très peu clair car il n'est pas nécessaire d'avoir installé Vistual Studio pour exécuter le code rust. Et que signifie exactement "option Visual C++" ? "VS 2013, VS 2015 ou VS 2017" est également erroné - il n'est pas nécessaire d'installer le Visual Studio complet de ces versions particulières.

Pour exécuter 'cargo run' vous devez installer Outils de construction C++ de Outils de construction pour Visual Studio . La version 2019 convient parfaitement. Lien de téléchargement : https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16#

Il est important de sélectionner non seulement les outils C++ "inclus" par défaut lors de l'installation, mais également trois outils C++. Outils de construction C++ "facultatifs : MSVC(...), Windows 10 SDK, outils C++ CMake pour Windows.

2voto

Late Nighter Points 41

J'ai eu le même problème et j'ai constaté qu'il était présent même après avoir installé les Build Tools. J'ai réalisé presque par hasard que j'exécutais toutes mes commandes cargo dans "Developer Command Prompt for Visual Studio". L'exécution des mêmes commandes dans un simple shell cmd n'a posé aucun problème.

Ce qui a marché pour moi : Exécuter directement l'invite de commande et ne pas utiliser les raccourcis créés par Visual Studio.

Cause possible : Visual Studio Command Prompt exécute des fichiers bat, par exemple VsDevCmd.bat, avant de lancer le shell (pour charger les variables d'environnement liées à VS, etc.) et il est possible que l'une des commandes de ce fichier modifie le chemin utilisé par cargo pour accéder au linker.

Quelqu'un pourrait creuser davantage pour trouver la ligne exacte qui cause le problème s'il veut vraiment savoir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X