This article is a list of steps to build Qt statically on Windows so that you can build your applications as a single self-contained binary. The environment for building is
Before you start you need to download the following files. This link is a good place to start searching for the files: Qt official releases. At the moment of writing the latest version of Qt was 5.14:
- Qt installation that includes MINGW compilers. File name:
- Qt source files we are going to compile statically. File name:
Prepare build environment
First execute the installer (download 1). We will use
c:\qtas our installation directory. The target direction will be
C:\qt\Qt5.14.2. Select Qt tools and MINGW 32 toolchain.
Unzip the source files to
C:\qt\src. The root of the source tree will be
Before we can build Qt, we need to create a cmd file that will setup all required variables. The file name I use is
env.cmd with the following content:
set PATH=C:\qt\Qt5.14.2\Tools\mingw730_32\bin;C:\qt\Qt5.14.2\Tools\mingw730_32\opt\bin;C:\Windows\System32;C:\Windows set LANG="en" set QT_INSTALL_PREFIX=c:\qt\Static\5.14.2
cmd call the new file to set our variables:
Configure and build
cmd go to the source directory and run configure:
cd C:\qt\src\qt-everywhere-src-5.14.2\ configure.bat -static -debug-and-release -platform win32-g++ -prefix C:\qt\Static\5.14.2 -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests
This seems to be the settings working for minimal Qt applications. The configure command will take some time to run. Depending on your hardware it can take several minutes.
%ERRORLEVEL% variable. It should be 0 after
configure.bat finishes. If it is successful, we can start the build:
mingw32-make -k -j 4
The building will take a lot of time. Best to leave it overnight.
-k instructs make to continue building if there are errors. The next morning run the install command:
After the steps above you will find all binaries for building your Qt application statically under