I tried to install Rust on Cygwin but failed to be able link with mingw. Now I am trying to install it with Msys2. I already installed Msys2 and Mingw. I tried to follow this wiki page but I got lost at number 2:
Download and install Rust+Cargo using the installer but be sure to disable the Linker and platform libraries option.
Is it referring to the "rustup-init.exe" on the install page? Should I double click to run this file or run it from Msys2? I tried to run from Msys2 and got the options:
1) Proceed with installation (default) 2) Customize installation 3) Cancel installation
I don't know what to do next.
I tried to follow Francis' answer:
Thang@Thang-Laptop MINGW64 /c/Software/Rust $ ./rustup-init.exe Rust Visual C++ prerequisites Rust requires the Microsoft C++ build tools for Visual Studio 2013 or later, but they don't seem to be installed. The easiest way to acquire the build tools is by installing Microsoft Visual C++ Build Tools 2015 which provides just the Visual C++ build tools: http://landinghub.visualstudio.com/visual-cpp-build-tools Alternately, you can install Visual Studio 2015 or Visual Studio 2013 and during install select the "C++ tools": https://www.visualstudio.com/downloads/ Install the C++ build tools before proceeding. If you will be targetting the GNU ABI or otherwise know what you are doing then it is fine to continue installation without the build tools, but otherwise, install the C++ build tools before proceeding. Continue? (Y/n) Y Welcome to Rust! This will download and install the official compiler for the Rust programming language, and its package manager, Cargo. It will add the cargo, rustc, rustup and other commands to Cargo's bin directory, located at: C:\Users\Thang\.cargo\bin This path will then be added to your PATH environment variable by modifying the HKEY_CURRENT_USER/Environment/PATH registry key. You can uninstall at any time with rustup self uninstall and these changes will be reverted. Current installation options: default host triple: x86_64-pc-windows-msvc default toolchain: stable modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation 2 I'm going to ask you the value of each these installation options. You may simply press the Enter key to leave unchanged. Default host triple? x86_64-pc-windows-gnu Default toolchain? (stable/beta/nightly/none) stable Modify PATH variable? (y/n) y Current installation options: default host triple: x86_64-pc-windows-gnu default toolchain: stable modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation 1 info: updating existing rustup installation Rust is installed now. Great! To get started you need Cargo's bin directory (%USERPROFILE%\.cargo\bin) in your PATH environment variable. Future applications will automatically have the correct environment, but you may need to restart your current shell. Press the Enter key to continue. Thang@Thang-Laptop MINGW64 /c/Software/Rust $ rustc --version bash: rustc: command not found
I added the config file. Not sure if I miss anything
Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo $ cat config [target.x86_64-pc-windows-gnu] linker = "C:\msys2\mingw64\bin\gcc.exe" ar = "C:\msys2\mingw64\bin\ar.exe" Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo $ cargo --version bash: cargo: command not found
Edit 2:
I have just restarted my laptop. It's still not work, I check the Path in msys2, there is no cargo folder
Thang@Thang-Laptop MINGW64 ~ $ echo $PATH /mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/
but I saw it in user variables in Environment Variables.
Edit 3:
Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo/bin $ ./rustup default stable-x86_64-pc-windows-gnu info: syncing channel updates for 'stable-x86_64-pc-windows-gnu' info: latest update on 2017-10-12, rust version 1.21.0 (3b72af97e 2017-10-09) info: downloading component 'rustc' info: downloading component 'rust-std' info: downloading component 'cargo' info: downloading component 'rust-docs' info: downloading component 'rust-mingw' info: installing component 'rustc' info: installing component 'rust-std' info: installing component 'cargo' info: installing component 'rust-docs' info: installing component 'rust-mingw' info: default toolchain set to 'stable-x86_64-pc-windows-gnu' stable-x86_64-pc-windows-gnu installed - rustc 1.21.0 (3b72af97e 2017-10-09) Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo/bin $ ls cargo.exe rustc.exe rust-gdb.exe rustup.exe rls.exe rustdoc.exe rust-lldb.exe Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo/bin $ rustc --version bash: rustc: command not found
rustup installs rustc , cargo , rustup and other standard tools to Cargo's bin directory.
Rustup can be used to install Rust and keep it updated. It also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling.
The Using Rust on Windows page you linked to dates from before rustup replaced the installer as the default option to install Rust. Installers are still available, but you should use rustup if possible, because it makes it easy to update and to use multiple toolchains at once (e.g. stable, beta and nightly). If you must use the installer, just select the x86_64-pc-windows-gnu
installer and follow the step from the Using Rust on Windows page. If you're using rustup, read on.
By default, rustup on Windows installs the compiler and tools targeting the MSVC toolchain, rather than the GNU/MinGW-w64 toolchain. At the initial menu, select 2) Customize installation. When asked for a host triple, enter x86_64-pc-windows-gnu
. Then make a choice for the other questions, then proceed with the installation.
Note: If rustup is already installed, then rerunning rustup-init won't actually install the requested toolchain. Instead, run rustup toolchain install stable-x86_64-pc-windows-gnu
if you already have the MSVC-based toolchain. Then run rustup default stable-x86_64-pc-windows-gnu
to set the GNU-based toolchain as the default.
Rustup will install the MinGW linker and platform libraries automatically (as part of the rust-mingw
component) and refuses to let you remove them. If you prefer to use the MinGW linker and libraries you installed with MSYS2, you'll need to create a .cargo/config
file (either in your profile directory, i.e. C:\Users\you\.cargo\config
, or in your project's directory if this configuration is specific to a project). The contents of that file might look like this:
[target.x86_64-pc-windows-gnu] linker = "C:\\msys2\\mingw64\\bin\\gcc.exe" ar = "C:\\msys2\\mingw64\\bin\\ar.exe"
Rustup will modify the PATH
environment variable unless you told it not to. However, MSYS2 resets PATH
by default when you launch, so when you try to invoke cargo
or rustc
from your MSYS2 shell, it might not find it. You'll need to edit your .profile
/.bash_profile
script to set the PATH
correctly (you need to prepend /c/Users/yourname/.cargo/bin:
to PATH
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With