Qt for Windows - Building from Source

This page describes the process of configuring and building Qt for Windows. Before building, there are some requirements that are given in more detail in the Qt for Windows - Requirements document.

You can download the Qt 5 sources from the Downloads page. For more information, visit the Getting Started with Qt page.

Step 1: Install the License File (Commercial Editions Only)

If you have the commercial edition of Qt, copy the license file from your account on the distribution server into your home directory (this may be known as the userprofile environment variable) and rename it to .qt-license. This renaming process must be done using a command prompt on Windows, not with Windows Explorer. For example on Windows 2000, %USERPROFILE% should be something like C:\Documents and Settings\username

For the open source version you do not need a license file.

Step 2: Unpack the Archive

Uncompress the files into the directory you want Qt installed; e.g. C:\Qt\%VERSION%.

Note: The install path must not contain any spaces or Windows specific file system characters.

Step 3: Set the Environment Variables

We recommend creating a desktop link that opens a command prompt with the environment set up similar to the Command Prompt menu entries provided by the Windows SDKs. This is done by creating an application link passing a .cmd file setting up the environment and the command line option /k (remain open) to cmd.exe.

Assuming the file is called qt5vars.cmd and the Qt folder is called qt-5 and located under C:\qt:

REM Set up \Microsoft Visual Studio 2013, where <arch> is \c amd64, \c x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" <arch>
SET _ROOT=C:\qt\qt-5
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
SET QMAKESPEC=win32-msvc2013
SET _ROOT=

A desktop link can then be created by specifying the command %SystemRoot%\system32\cmd.exe /E:ON /V:ON /k c:\qt\qt5vars.cmd as application and c:\qt\qt-5 as working directory.

Note: Setups for MinGW are similar; they differ only in that the bin folder of the installation should be added to the path instead of calling the Windows SDK setup script. For MinGW, please make sure that no sh.exe can be found in the path, as it affects mingw32-make.

Settings required by the additional libraries (see Qt for Windows Requirements) should also go this file below the call to the Windows SDK setup script.

Step 4: Build the Qt Library

The default behavior of configure is to create an in-source build of Qt 5. If you want to install Qt 5 to a separate location, you need to specify the command line option -prefix <location>. Alternatively, the command line option -developer-build creates an in-source build for developer usage.

To configure the Qt library for a debug build for your machine, type the following command in the command prompt:

configure -debug -nomake examples -opensource

The Configure Options page contains more information about the configure options.

To build Qt using jom, type:

jom

If you do not have jom installed, type:

nmake

For MinGW, type:

mingw32-make

If an installation prefix was given, type jom install, nmake install or mingw32-make install.

Note: If you later need to reconfigure and rebuild Qt from the same location, ensure that all traces of the previous configuration are removed by entering the build directory and typing nmake distclean before running configure again.

Parallel Builds

jom is a replacement for nmake which makes use of all CPU cores and thus speeds up building.

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