# VeraCrypt Build Dependencies: Complete Guide for Linux, macOS, and Windows

> Find complete VeraCrypt build dependencies for Linux, macOS, and Windows. Learn about required toolchains, compilers, and libraries to compile the encryption software from source.

- Repository: [VeraCrypt/VeraCrypt](https://github.com/veracrypt/VeraCrypt)
- Tags: how-to-guide
- Published: 2026-06-30

---

**VeraCrypt requires platform-specific toolchains including GNU Make, GCC 4.0+, wxWidgets 3.0, and FUSE libraries on Linux and macOS, while Windows builds depend on Visual Studio 2017+, Windows SDK 8.1+, and WiX Toolset 3.11 to compile the encryption software from source.**

Compiling VeraCrypt from the veracrypt/VeraCrypt repository requires specific build dependencies that vary by operating system. This guide consolidates the requirements documented in the project's README and compilation guidelines, detailing the compilers, libraries, and SDKs necessary to build this cross-platform disk encryption utility.

## Linux and macOS Build Dependencies

### Core Build Tools and Compilers

According to the VeraCrypt README, Unix-based builds require **GNU Make** and a **GNU C++ Compiler** (version 4.0 or compatible). Linux x86/x64 builds additionally require **YASM** (version 1.3.0 or newer) to assemble performance-critical cryptographic routines. The build system also relies on **pkg-config** to detect installed libraries during compilation.

### GUI Framework and System Libraries

The graphical interface requires **wxWidgets** (version 3.0 as a shared library) for the cross-platform GUI toolkit. For volume mounting functionality, VeraCrypt depends on the **FUSE library** on both Linux and macOS. Smart card support necessitates **PCSC-lite** (PC/SC Smart Card Library) on these platforms.

### macOS Specific Requirements

macOS builds require **Apple Xcode** or the Xcode command-line tools to provide the Clang compiler and macOS SDK. While optional, **Homebrew** serves as the recommended package manager for installing dependencies like YASM, wxWidgets, and pkg-config on macOS systems.

## Windows Build Dependencies

### Microsoft Visual Studio and Windows SDK

Windows compilation requires **Microsoft Visual Studio** (2017 or newer) as the primary C/C++ compiler and IDE. The build also depends on the **Windows SDK** (version 8.1 or newer, such as 10.0.19041.0) for header files, libraries, and platform tools, as defined in `src/VeraCrypt.sln` and documented in [`doc/html/en/CompilingGuidelineWin.html`](https://github.com/veracrypt/VeraCrypt/blob/main/doc/html/en/CompilingGuidelineWin.html).

### Installer Creation and Signing

To create MSI installers, developers must install **WiX Toolset** (version 3.11). Official driver builds require a **code-signing certificate** for kernel-mode driver signing. Alternative build environments using **Cygwin** or **MinGW** are optionally supported for specific use cases.

## Installing Dependencies and Compilation Commands

### Debian and Ubuntu

On Debian-based systems, install the required packages using apt-get:

```bash
sudo apt-get install build-essential yasm pkg-config libwxgtk3.0-dev libfuse-dev libpcsclite-dev

```

After installation, compile VeraCrypt using the Makefile in the source root:

```bash
make                # Standard GUI build

make NOGUI=1        # Console-only build without GUI dependencies

```

### macOS with Homebrew

Install the necessary tools via Homebrew before building:

```bash
brew install pkg-config yasm wxwidgets
brew install --cask macfuse packages

```

Use the provided build script for automated compilation:

```bash
./src/Build/build_veracrypt_macosx.sh -b    # Development build

./src/Build/build_veracrypt_macosx.sh -b -p # Package build

```

### Arch Linux Package Build

For Arch Linux users, the repository includes specific packaging files in `src/Build/Packaging/arch/`:

```bash
cd src/Build/Packaging/arch
makepkg -si   # Builds and installs the VeraCrypt package from source

```

## Static Linking and Build Configuration

Developers can modify the build behavior using Makefile flags documented in [`doc/html/en/CompilingGuidelineLinux.html`](https://github.com/veracrypt/VeraCrypt/blob/main/doc/html/en/CompilingGuidelineLinux.html). To link wxWidgets statically when shared libraries are unavailable, use:

```bash
make WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild

```

For minimal console-only builds that exclude GUI libraries entirely, compile with:

```bash
make NOGUI=1 WXSTATIC=1

```

## Summary

- **Linux builds** require GNU Make, GCC 4.0+, YASM 1.3.0+, pkg-config, wxWidgets 3.0, FUSE, and PCSC-lite libraries.
- **macOS builds** need Xcode command-line tools, Homebrew packages (yasm, wxwidgets, pkg-config), and macFUSE for volume mounting support.
- **Windows builds** depend on Visual Studio 2017+, Windows SDK 8.1+, and WiX Toolset 3.11 for installer generation.
- **Build scripts** like [`src/Build/build_veracrypt_macosx.sh`](https://github.com/veracrypt/VeraCrypt/blob/main/src/Build/build_veracrypt_macosx.sh) automate platform-specific compilation, while Makefile flags (`NOGUI=1`, `WXSTATIC=1`) control GUI and linking options.

## Frequently Asked Questions

### What is the minimum GCC version required to build VeraCrypt?

VeraCrypt requires **GNU C++ Compiler version 4.0 or compatible**. This requirement is specified in the repository's README to ensure proper C++ standard support across Linux and macOS platforms.

### Can I build VeraCrypt without a GUI on Linux?

Yes. Set the `NOGUI=1` flag when running make to compile a console-only binary that excludes wxWidgets dependencies: `make NOGUI=1`. This is useful for headless servers or minimal installations where GUI libraries are not available.

### Is YASM required for all Linux architectures?

No. **YASM** (version 1.3.0 or newer) is only required for Linux x86 and x64 architectures to assemble optimized cryptographic routines. Other architectures may not require this assembler according to the build documentation.

### What tools are needed to create a Windows installer for VeraCrypt?

Windows installer creation requires the **WiX Toolset version 3.11** to generate MSI packages. Additionally, a valid **code-signing certificate** is necessary for signing kernel-mode drivers and official releases as implemented in the veracrypt/VeraCrypt repository.