Qt 6.8.1 static build. Статическая сборка Qt 6.8 под Microsoft Visual Studio 2022 (msvc2022, Windows x64)
Telegram Teletype vc.ru dzen.ru
ОС: Windows 11
Microsoft Visual Studio 2022
Qt 6.8.1
1. Скачиваем архив исходников Qt для Windows (qt-everywhere-src-6.8.1.zip) с официального сайта qt.
2. Создаем каталог, например, c:\Qt\Qt6.8.1-x64-msvc2022-static\6.8\Src и распаковываем в него содержимое архива исходников. Сборка в дальнейшем будет привязана к данному каталогу и букве диска. Получим подкаталоги 6.8\Src\qtbase, 6.8\Src\coin и т.д.).
3. Устанавливаем:
StrawberryPerl https://strawberryperl.com
Python 3 (https://www.python.org)
Node.js (https://nodejs.org)
ninja (https://github.com/ninja-build/ninja/releases)
4. Запускаем командную строку (cmd) с правами администратора и последовательно выполняем в ней следующие команды:
Задаем системные переменные Qt:
set QTDIR=c:\Qt\qt6.8.1-x64-msvc2022-static\6.8\Src\qtbase set PATH=c:\Qt\qt6.8.1-x64-msvc2022-static\6.8\Src\qtbase\bin;%PATH%
Системная переменная пути к LLVM:
set PATH=c:\Program Files\LLVM\bin;%PATH% set LLVM_INSTALL_DIR=C:\Program Files\LLVM
Системные переменные пути к ninja и gnuwin32 (для QtPdf):
set PATH=c:\Qt\Tools\Ninja;%PATH% set PATH=c:\Program Files (x86)\GnuWin32\bin;%PATH%
Для Microsoft Visual Studio 2022 (msvc2022):
cd "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build" vcvarsall.bat amd64
configure -debug-and-release -static -static-runtime -opensource -confirm-license -platform win32-msvc -nomake examples -nomake tests -qt-zlib -qt-libpng -qt-libjpeg -prefix "c:\Qt\qt6.8.1-x64-msvc2022-static\6.8" -skip qtandroidextras -skip qtactiveqt -skip qtgamepad -skip qtmacextras -skip qtlocation -skip qtlottie -skip qtquick3d -skip qtquick3dphysics -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquickeffectmaker -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebengine -skip qtx11extras -no-dbus -no-openssl -skip qtgraphs -skip qdoc
-prefix "c:\Qt\qt6.8.1-x64-msvc2022-static\6.8" - путь, куда будет помещена сборка,
Пропущенные модули:
-skip qtandroidextras -skip qtactiveqt -skip qtgamepad -skip qtmacextras -skip qtlocation -skip qtlottie -skip qtquick3d -skip qtquick3dphysics -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquickeffectmaker -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebengine -skip qtx11extras -skip qtgraphs -skip qdoc
-nomake examples -nomake tests - отказ от сборки тестов и примеров
-platform win32-msvc - выбор платформы
-confirm-license - подтверждение согласия с лицензией
-static -static-runtime - статическая сборка
cd c:\Qt\qt6.8.1-x64-msvc2022-static\6.8\Src
cmake --build . --parallel
cmake --install .
Сборка и установка документации (не прошло):
cmake --build . --target docs cmake --build . --target install_docs
После сборки каталог Src можно удалить, там лежат исходники и более 100 Гигабайт промежуточных файлов.
pip install html5lib
- QtPdf won't be built. Tool gperf is required.
QtPdf won't be built. Tool bison is required.
QtPdf won't be built. Tool flex is required.
Необходимо установить:
Gperf (https://sourceforge.net/projects/gnuwin32/files/gperf/3.0.1/gperf-3.0.1.exe/download)
Flex (https://gnuwin32.sourceforge.net/downlinks/flex.php)
Bison (http://downloads.sourceforge.net/gnuwin32/bison-2.4.1-setup.exe)
После сборки каталог Src будет занимать больше 100 Гигабайт. Его можно будет удалить.
QDoc собрать статически не удалось.
QtWebengine не поддерживает статическую сборку.
LLVM с официального сайта не подходит для данной статической сборки. Будет всё равно выводиться предупреждение.
Оказывается необходимо выбрать с сайта qt (https://qt-mirror.dannhauer.de/development_releases/prebuilt/libclang/) определенную версию LLVM (собранную разработчиками Qt) со статическими библиотеками, которых нет в официальной версии LLVM. Мне это сделать не удалось: выводились ошибки при сборке самого Qt6.
Поддержать проект (подарком):
ЮMoney 4100 1188 9778 9041
карта 5599 0021 0667 6341