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 MINGW 32
Downloads
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-opensource-windows-x86-5.14.2.exe
- Qt source files we are going to compile statically. File name:
qt-everywhere-src-5.14.2.zip
Prepare build environment
-
First execute the installer (download 1). We will use
c:\qt
as our installation directory. The target direction will beC:\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 beC:\qt\src\qt-everywhere-src-5.14.2\
Environment variables
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
In cmd
call the new file to set our variables:
env.cmd
Configure and build
In 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.
Check your %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:
mingw32-make install
Done
After the steps above you will find all binaries for building your Qt application statically under c:\qt\Static\5.14.2
.