Getting Started on Windows
Native development of substrate is not very well supported! It is highly recommend to use Windows Subsystem Linux (WSL) and follow the instructions for Ubuntu/Debian. Substrate development is easiest on Unix-based operating systems like macOS or Linux. The examples in the Substrate Tutorials and How-to Guides use Unix-style terminals to demonstrate how to interact with Substrate from the command line.
If you do decide to try and use a Windows computer to natively build Substrate, do the following:
Download and install "Build Tools for Visual Studio:"
- You can get it at this link: https://aka.ms/buildtools.
- Run the installation file:
- Ensure the "Windows 10 SDK" component is included when installing the Visual C++ Build Tools.
- Restart your computer.
Detailed instructions are provided by the Rust Book.
Download from: https://www.rust-lang.org/tools/install.
Run the installation file:
It shouldn't prompt you to install
vs_buildtoolssince you did it in step 1.
Choose "Default Installation."
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.
Run these commands in Command Prompt (
CMD) to set up your Wasm Build Environment:
rustup update nightly rustup update stable rustup target add wasm32-unknown-unknown --toolchain nightly
Install LLVM: https://releases.llvm.org/download.html
Install OpenSSL with
mkdir C:\Tools cd C:\Tools git clone https://github.com/Microsoft/vcpkg.git --depth=1 cd vcpkg .\bootstrap-vcpkg.bat .\vcpkg.exe install openssl:x64-windows-static
Add OpenSSL to your System Variables using PowerShell:
$env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static' $env:OPENSSL_STATIC = 'Yes' [System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User)
- This can be done using Chocolatey. First you need to install the Chocolatey package manager: https://chocolatey.org/install
- Once Chocolatey installed you can install make:
choco install make