Cant install in Windows 10

Help, I need to install Rust for building cryptography python module which is needed by selenium-wire module. But the rust installation needs MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) and Windows 11 SDK which is only supported in Windows 11

Why would you conclude rust needs Windows 11 SDK?
I've installed rust several days ago on Windows 10 machine. I had MSVC 2019 installed beforehand, with C++ tools, and that was enough. In case you don't want MSVC, rust installer tells you where to get SDK/toolchain it needs.

3 Likes

I'm just following the installation process from rustup-init.exe, select quick installation, and then end up with installing Visual Studio Installer as seen in the picture

I've successfully installed the Visual Studio 2022 Build Tools just now on Windows 10 21H1, including the Windows 11 SDK; and recently on Server 2022 21H2 via the Rust installer. The error message is unhelpful, but unless you're on ARM then Windows 11 doesn't seem to be the answer.

The system requirements are at Visual Studio 2022 System Requirements | Microsoft Docs, and there are some things like needing 64-bit Windows, not version 1903 or earlier, and not in S mode. Could one of those be the case?

Funny bug. Rust needs some kind of Windows SDK and by default installs Windows 11 one.

This feature was added just very recently thus bugs are kinda expected.

Just install Visual Studio with C++ build tools and some Windows SDK manually (like you needed to do for years), then rustup should skip that step.

1 Like

This is odd. I'd expect "Windows 11 SDK" to be for making programs compatible with Win 11 and older, but not actually require Windows 11 to run.

I'm afraid it's the reverse - "Windows 11 SDK" is for compiling "for Win 11 and whatever is created after". Not sure if this is correct, however.

No, Windows 11 SDK should be supported in Windows 10 version 1507 or higher.

I'm really curious what kind of Windows topicstarter uses which doesn't support it.

Rustc needs a linker. Best one for windows is link.exe from MSVC package, but you still can use built-in rust-lld. You can specify the linker in {project_name}/.cargo/config.toml

Example:

[target.x86_64-pc-windows-msvc]
linker = "rust-lld"

Oh yes, i'm using version 1511. So do i have to upgrade Windows ?
Or is there a way to install rust without upgrading windows ?
Thx

Visual Studio Build Tools 2017 should be supported on every version of Windows 10, and if you can install them manually from https://visualstudio.microsoft.com/vs/older-downloads/ then I think Rust should use them. It’s not as straightforward as the automatic install of the latest version, though.

Alternatively, you can install the x86_64-pc-windows-gnu version of Rust, which uses the MinGW tools:

  1. Select option “3) Don't install the prerequisites” when you run Rustup.
  2. Select option “2) Customize installation”.
  3. Enter x86_64-pc-windows-gnu as the “Default host triple”, and press Enter to use the defaults for the rest of the options.

I think in any case you definitely should do a Windows feature update. 1511 is no longer supported and doesn't get security fixes.

Hm, maybe rustup should do some version detection for unsupported OSes and prompt people to do a manual install on earlier versions. Though this is awkward because it would need to be continually updated as versions go out of support.

It also has some extra dependencies because rustup-init.exe doesn’t seem to include a Windows manifest at the moment, so GetVersion() won’t return a version number higher than Windows Vista.