MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Статическая сборка Qt для Windows. Часть 2. Qt5
24.05.2018
22:19
Автор: Михаил Юрьевич Звёздочкин
Текстовые метки: qt, qt5, сборка, компиляция, c++, windows
Раздел: Компьютер - Программирование - Язык C++ - Библиотека Qt - Инсталляция Qt и сборка проектов

Зачем?

В прошлой заметке мы собрали под Windows минималистичный комплект библиотек Qt 4.8.6 для статической компоновки со своими программами. А что делать, если нужны новые возможности Qt 5? Мне вот, например, понадобился модуль QtNetworkAuth, который был добавлен в Qt 5.8 и в последующих версиях активно правился.

Итак, соберём последнюю на сегодня Qt 5.10. Компилятор возьмём MinGW 5.3.0 (т.е. тот же самый, который кутешники поставляют с уже готовой сборкой qt-opensource-windows-x86-5.10.0.exe).

Что новенького?

В целом процесс сборки похож на описанный в предыдущей заметке, но имеются и отличия:

  1. Для сборки Qt теперь нужен Python 2 (не 3!). Вероятно, это как раз плата за возможность обойти без сувания configure.exe в исходники. Интерпретатор Питона надо включить в PATH. Если Вы программист и время от времени сношаетесь работаете с разными фреймворками и тулкитами, вполне возможно, что подходящий python.exe у Вас уже есть (в моём примере как раз так). В противном случае - поставьте его отдельно и укажите путь.
  2. Вместо configure.exe теперь поставляется configure.bat. Чтобы после configure отработал make, в пакетном файле configure надо вызвать через call.
  3. По той же причине у configure не работает ключ /? - для составления списка ключей надо писать configure.bat /help >configure-options.txt.
  4. Явное указание QMAKESPEC=win32-g++ не нужно и более того, не работает. Вымарываем (как и несколько устаревших ключей самого configure).
  5. Для сборки надо явно указать способ поддержки openGL, иначе Qt не соберётся. Наиболее общий способ для обычной винды - ключ -opengl desktop. Если нужна эффективная работа с openGL, целесообразнее использовать -opengl es2 (в Windows является режимом по умолчанию), но при этом придётся доустанавилвать заголовки и библиотеки для GL ES2, но с этим вариантом я ещё не разбирался.
  6. По окончании работы необходимо выполнить make install.

С учётом написанного, наш новый пакетный файл, buildstat-510.bat, примет примерно такой вид:


SET QTDIR=c:\Qt\5.10.0.st

SET MINGWDIR=C:\Qt\5.10.0\Tools\mingw530_32

SET PYTHON2DIR=C:\QNX650\host\win32\x86\unsupported\Python25

SET PATH=%PATH%;%QTDIR%\bin;%MINGWDIR%\bin;%PYTHON2DIR%

call configure -I "c:\Qt\3dparty\openssl-1.0.2m\include" -L "c:\Qt\3dparty\openssl-1.0.2m" -opensource -confirm-license -platform win32-g++ -static -release -opengl desktop -qt-zlib -qt-libpng -qt-libjpeg -openssl -nomake examples -prefix %QTDIR%

mingw32-make

mingw32-make install

Но я рекомендую пойти дальше и собрать OpenSSL более новой версии, благо Qt5 с ними уже вполне совместима.

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования