Windows Requirements

Platformdefaultfipsbindgen required?
x86_64-pc-windows-msvcC/C++ Compiler, CMake & NASMC/C++ Compiler, CMake, NASM, Go & NinjaYes
x86_64-pc-windows-gnuC/C++ Compiler, CMake & NASMNot SupportedYes
aarch64-pc-windows-msvcC/C++ Compiler (clang-cl), CMake & NinjaNot SupportedYes
OtherNot SupportedNot SupportedN/A

C/C++ Compiler

Use the following instructions to download Visual Studio Build Tools 2017 or later.

  1. Download the Build Tools for Visual Studio installer.
  2. Execute the installer.
  3. If you have an existing installation chose Modify on the existing installation.
  4. Under Workloads select Visual C++ build tools
  5. Under Individual componenets select
    • C++/CLI support
    • C++ CMake tools for Windows
  6. For ARM64/aarch64 support, also select:
    • C++ Clang Compiler for Windows
    • MSBuild support for LLVM (clang-cl) toolset
  7. Confirm selections and click Install


  1. Download Windows CMake Installer
  2. Execute the installer
  3. Add the CMake installation binary directory to your PATH.
    • set PATH="C:\Program Files\CMake\bin;%PATH%"


  1. Download and install the Netwide Assembler (NASM)
  2. Add the NASM installation directory to your PATH
    • set PATH="C:\Program Files\NASM;%PATH%"

No-assembly build

It is possible to avoid the NASM requirement by setting the AWS_LC_SYS_NO_ASM/AWS_LC_FIPS_SYS_NO_ASM environment variables. However, this severely impacts performance and can only be used for un-optimized/debug builds. See the notes in our troubleshooting section.


  1. Download and install Ninja
  2. Add the Ninja installation directory to your PATH
    • set PATH="C:\ninja\ninja_build;%PATH%"


On most platforms, bindgen requires libclang or llvm package to be installed. See the requirements page in [The bindgen User Guide] for instructions.

libclang / LLVM

  1. Download LLVM Installer
  2. Execute the installer
  3. Update your environment to set LIBCLANG_PATH to the bin directory inside LLVM install directory.
    • set LIBCLANG_PATH="C:\Program Files\LLVM\bin"


cargo install --force --locked bindgen-cli


See our troubleshooting section.