I have been interested in Rust for a long time, and some time ago I decided to pick it up again and install on my Windows 10 PC. I downloaded the installer, then I noticed that Rust has switched to rustup instead of an installer like before. By default it offered me to use the MSVC toolchain, which I thought nice on Windows.
However, that’s where my problems started. First, I needed to install the build tools. The Visual Studio itself is a huge monster, so downloading and installing it is something that I would obviously like to avoid. Therefore, I decided to go with the Visual C++ Build Tools. I installed them, tried launching cargo, and it couldn’t compile my project and told me, “‘link.exe’ was not found”. After searching the web, I found out that I need to run
vsvarsall.bat, which unfortunately did nothing useful to me.
Finally I gave up and simply added
link.exe to my
PATH. That helped, but not much, because now I got the following complaints: “LINK : fatal error LNK1181: cannot open input file ‘advapi32.lib’”. Unfortunately, I couldn’t fix that, so the only thing left for me to do was to revert to the GNU toolchain, which started working perfectly like all Rust setups on Windows I had before. I don’t know what I would do if I didn’t know that I can choose a different toolchain on Windows which doesn’t need such a wonky setup.
Basically, I have two questions. The first one is obvious: what could I have done wrong to get the toolchain up and running? The second one is something that worries me more, how can the process of setting it up be improved? Maybe this forum is the wrong place to write about this, but if a determined user like me can’t get the default chain to run, what chances do the novices have?
According to the new shiny roadmap for 2017, one of the main goals for this year is to provide a better learning curve. This just won’t be possible to do if the steps to get the stuff up and running are so difficult. Again, if I’m writing to the wrong place, please direct me to the right place to say something about this.