Qt for Windows - Building from Source

This page describes the process of configuring and building Qt for Windows. To download and install a pre-built Qt for Windows, follow the instructions on the Getting Started with Qt page.

Step 1: Getting the Sources

Qt sources can be installed in Qt Online Installer. Source packages are also available as Git repositories, as archives in the Qt Account (commercial users), and on download.qt.io (open-source users).

If you install the sources through Qt Online Installer, they will be available in the Qt installation directory, for instance C:\Qt\6.5.6\Src.

If you downloaded the source archive, extract it to a directory of your choice, for instance C:\dev\Qt\src.

Note: The path to the source directory must not contain any spaces or Windows-specific file system characters. The path should also be kept short. This prevents issues with too long file paths in the compilation phase.

Step 2: Installing Build Requirements and Set Environment

To build Qt from sources you need a build environment with a supported compiler and various build tools.

Build Tools

ToolSupported VersionsDescription
CMakeVersion 3.16 and newer (3.17 and newer for -debug-and-release builds 3.21 and newer for -static builds).Required for configuring the Qt build. Available in Qt Online Installer and on cmake.org.
Ninja-Recommended tool for building Qt. Available in Qt Online Installer and on ninja-build.org.
PythonVersion 3Required build tool. Windows installers are available on python.org, or from the Microsoft Store.

The executables cmake.exe, ninja.exe, and python.exe must be available in your build environment. Add the respective directory to your PATH environment variable.

Compilers

The following compilers and configurations are supported in Qt 6.5:

Operating SystemArchitectureCompiler
Windows 10 (1809 or later)x86_64MSVC 2022, MSVC 2019, MinGW 11.2
Windows 11x86_64MSVC 2022, MSVC 2019, MinGW 11.2
Windows on ARMarm64MSVC 2019/2022Technology Preview

Note: Windows on ARM is only supported as a deployment target. Applications have to be cross-compiled from an x86-64 Windows machine and deployed to target.

QDoc Dependencies

QDoc uses Clang to parse C++ code. If you wish to build QDoc manually, refer to Installing Clang for QDoc for specific build requirements.

Setting the Environment

For MSVC, do one of the following:

  • Run the vcvarsall.bat:
    "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64
  • Search on the Windows search bar for the VS Native Tools command prompt.

For MinGW: Add MinGW to PATH environment variable:

Set PATH=C:\qt\tools\mingw1120_64\bin;%PATH%

Step 3: Building the Qt Libraries and Tools

To configure your build, create a build directory and run the configure.bat script in this directory:

mkdir C:\dev\qt-build
cd C:\dev\qt-build
C:\dev\Qt\src\configure.bat

By default, Qt is configured for installation in the C:\Qt\Qt-6.5.3 directory. This can be changed by using the -prefix option. See the list of Qt Configure Options to tweak further.

Then build the libraries and tools:

cmake --build . --parallel

Period after --build means current folder.

After building, you need to install the libraries and tools in the desired path (unless you enabled a developer build:

cmake --install .

Step 4: Using Qt

After Qt is installed, you can start building applications with it.

If you work from the command line, consider adding the Qt tools to your PATH environment variable as follows:

set PATH=C:\Qt\Qt-6.5.3\bin;%PATH%

If you plan to use Qt from an IDE, you need to register the Qt version explicitly there. For Qt Creator, see Qt Creator: Adding Qt Versions.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.