{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Qt 5.15 static build (Windows x64). Статическая сборка Qt 5.15 под Microsoft Visual Studio 2019 (Windows x64)

1. Скачиваем архив исходников Qt для Windows (qt-everywhere-src-5.12.2.zip) с официального сайта.

2. Скачиваем утилиту jom и распаковываем её в каталог «C:\Qt\jom».

3. Создаем каталог, например, c:\Qt\Qt5.15.2-x64-msvc2019-static\5.15\Src и распаковываем в него содержимое архива исходников. Сборка в дальнейшем будет привязана к данному каталогу и букве диска. Каталог qt-everywhere-opensource-src-5.15.2 не создаем, т.е. получим подкаталоги 5.15\Src\qtbase, 5.15\Src\coin и т.д.). msvc2019 – это выбранный компилятор.

4. Редактируем файл msvc-desktop.conf (находится в каталоге c:\Qt\Qt5.15.2-x64-msvc2019-static\5.15\Src\qtbase\mkspecs\common\):

нужно заменить в переменных QMAKE_CFLAGS_RELEASE, QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO и QMAKE_CFLAGS_DEBUG значения -MD на -MT (для release), и -MDd на -MTd (для debug).

5. Запускаем командную строку (cmd) с правами администратора и последовательно выполняем в ней следующие команды:

cd "c:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build" vcvarsall.bat amd64 set QTDIR=c:\Qt\Qt5.15.2-x64-msvc2019-static\5.15\Src\qtbase set PATH=c:\Qt\Qt5.15.2-x64-msvc2019-static\5.15\Src\qtbase\bin;%PATH% cd c:\Qt\Qt5.15.2-x64-msvc2019-static\5.15\Src\qtbase configure -debug-and-release -opensource -platform win32-msvc2019 -opengl desktop -static -nomake examples C:\Qt\jom\jom.exe -j 50

Аналогично делается для Microsoft Visual Studio 2010, 2013, 2015, 2017.

Контакты:
Телеграм-канал t.me/zqtprog
https://vc.ru/u/1135230-zqtprog
https://dzen.ru/zqtprog

0
2 комментария
AntonK

1. А как согласуется эта либа в статическом виде с бесплатной Qt-лицензией? Или этот use case для тех, кто на коммерческой лицензии?
2. И, по-моему, правильнее было бы осуществлять сборку в отдельном каталоге, чтоб потом проще было почистить временные файлы. Или jom умеет в clean?
3. Можно ли как-либо эту схему провернуть без модификации файлов конфигирации в недрах Qt-исходников, например, через ключи, передаваемые в configure?

Ответить
Развернуть ветку
zqtprog
Автор

1. Кто понимает зачем статическая либа, тот не задаст таких вопросов.
2. Да, так удобнее будет.
3. Можно, посмотрите сборку Qt 5.15.10 -
https://t.me/zqtprog/86

4.4. Статическая сборка Qt 5.15.10 (MSVC2019 x64 Windows 10)

Сборка под Microsoft Visual Studio 2019

Разрядность: x64

ОС: Windows 10, Windows 11

Скачиваем архив исходников Qt для Windows (qt-everywhere-opensource-src-5.15.10.zip) с официального сайта:

https://download.qt.io/officia...

4.4. Статическая сборка Qt 5.15.10 (MSVC2019 x64 Windows 10)

Сборка под Microsoft Visual Studio 2019

Разрядность: x64

ОС: Windows 10, Windows 11

Скачиваем архив исходников Qt для Windows (qt-everywhere-opensource-src-5.15.10.zip) с официального сайта:

https://download.qt.io/official_releases/qt/5.15/5.15.10/single/qt-everywhere-opensource-src-5.15.10.zip

Создаем каталог с понятным нам путями, например, «c:/Qt/Qt5.15.10-x64-msvc2019-static/5.15/Src» и распаковываем в него содержимое архива исходников с дальнейшим переходом в него:

cd c:/Qt/Qt5.15.10-x64-msvc2019-static/5.15/Src

Править файл ?.conf уже нет необходимости, если используется флаг -static-runtime.

Если же данный флаг не используется, то заменяем в переменных QMAKE_CFLAGS_RELEASE, QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO и QMAKE_CFLAGS_DEBUG параметр -MD на -MT для release-версии, и -MDd на -MTd для debug-версии:

c:\Qt\Qt5.15.10-x64-msvc2019-static\5.15\Src\qtbase\mkspecs\common\msvc-desktop.conf

Устанавливаем LLVM.

Запускаем от администратора командную строку "cmd" и последовательно выполняем следующие команды:

cd "c:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build"

vcvarsall.bat amd64

set QTDIR=c:\Qt\Qt5.15.10-x64-msvc2019-static\5.15\Src\qtbase

set PATH=c:\Qt\Qt5.15.10-x64-msvc2019-static\5.15\Src\qtbase\bin;%PATH%

set PATH=c:\Program Files\LLVM\bin;%PATH%

set LLVM_INSTALL_DIR=C:\Program Files\LLVM

cd c:\Qt\Qt5.15.10-x64-msvc2019-static\5.15\Src

configure -debug-and-release -static -static-runtime -opensource -confirm-license -platform win32-msvc2019 -opengl desktop -nomake examples -nomake tests -qt-zlib -qt-libpng -qt-libjpeg -prefix "c:\Qt\Qt5.15.10-x64-msvc2019-static\5.15" -skip qtactiveqt -skip qtandroidextras -skip qtconnectivity -skip qtdeclarative -skip qtgamepad -skip qtlocation -skip qtlottie -skip qtmacextras -skip qtpurchasing -skip qtquick3d -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtx11extras -no-dbus -no-openssl

C:\Qt\jom\jom.exe /J 4

C:\Qt\jom\jom /J 4 install

Для сборки документации:

C:\Qt\jom\jom /J 4 docs

C:\Qt\jom\jom /J 4 install_docs

где 4 - количество ядер.

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда