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

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.

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:

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:

make                # Standard GUI build

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

macOS with Homebrew

Install the necessary tools via Homebrew before building:

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

Use the provided build script for automated compilation:

./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/:

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. To link wxWidgets statically when shared libraries are unavailable, use:

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

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

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 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.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →