rubezh-TWnlenfritplesuk

Статическая компиляция Qt5.7 с использованием MSVC

Подобных статей в Интернете много, но мне потребовалось несколько дней, чтоб найти рабочий вариант. Поэтому в качестве узелка на память публикую изыскания в своем блоге.

Дабы Вы не набивали шишек наступая на мои грабли - сразу подскажу, что версии Qt 5.7 и выше не компилируются с помощью MSVC 2010, т.к. требуется поддержка C++14. А эта версия языка поддерживается начиная с VS2013.

Перед началом необходимо скачать исходники библиотеки, я брал их с этого адреса. На тот момент это была последняя версия.

Собирать библиотеку будем в папку C:\Qt\5.7\msvc2015_32_static. В ней создадим подпапку src и извлечем в нее содержимое архива с исходниками.

Далее следует найти файл C:\Qt\5.7\msvc2015_32_static\src\qtbase\mkspecs\common\msvc-desktop.conf, в нем изменим текст:

QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd

На следующий:

QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd

Т.е. все вхождения буквосочетаний MD изменяем на MT.

Создадим .bat-файл для компиляции:

set QtDir=c:\Qt\5.7\msvc2015_32_static\
set QtSrcDir=c:\Qt\5.7\msvc2015_32_static\src\
:: Force English locale to avoid weird effects of tools localization.
set LANG=en
:: Set environment variable QT_INSTALL_PREFIX. Documentation says it should be
:: used by configure as prefix but this does not seem to work. So, we will
:: also specify -prefix option in configure.
set QT_INSTALL_PREFIX=%QtDir%
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
:: Configure, compile and install Qt.
cmd /c "%QtSrcDir%configure.bat -static -debug-and-release -platform win32-msvc2015 -prefix %QtDir% -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests" > log_cmd.txt
nmake > log_make.txt
nmake install > log_make_install.txt
pause

В этом файле обратите внимание на пути:

  • QtDir - папка куда будет установлена библиотека по окончании компиляции;
  • QtSrcDir - папка с исходниками библиотеки;
  • В строке "call "C:\Pro..."" - проверьте путь к установленному компиллеру VC2013/VC2015.
  • В строке "cmd /c ..." -  параметр "-platform win32-msvc2015" указывает на то, что конфигурировать библиотеку необходимо под компилятор VC2015, соответственно если в Вашем случае это будет VC2013, то стоит соответственно изменить текст.

Библиотера компилируется долго - около полутора-двух часов. Так что запаситесь терпения и вперед!

Продолжение следует...

Ссылки по теме:

 

1 1 1 1 1 1 1 1 1 1 Рейтинг 100%

Метки: CPP, Qt

Печать E-mail

Добавить комментарий


Защитный код
Обновить