Как создать Qt 4.8.6 с Visual Studio 2015 без официальной поддержки?

В это время (сентябрь 2015 г.) нет официальной сборки Qt для Visual Studio 2015. Как ее создать вручную?

Ответ 1

Его можно легко создать вручную. Пример ниже для Qt 4.8.6.

  • Загрузите источники Qt 4.8.6: http://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip и распаковать. Пусть префикс Qt c:\Qt-2015\4.8.6\msvc2015. Скопируйте источники из загруженного исходного каталога в каталог {prefix dir}.

  • Применить патч 02-fix_build_with_msvc2015-45e8f4ee.diff https://drive.google.com/file/d/0Bz6Oefew6XZnOU9ac0hIeG41UVE/view?usp=sharing см. сообщение: https://forum.qt.io/topic/56453/compiling-qt4-head-with-msvc-2015-cstdint-errors/5 избавиться от ошибок компиляции (Я применил все изменения вручную, это не так долго).

  • Создайте новую спецификацию win32-msvc2015 в каталоге mkspecs: создайте каталог win32-msvc2015, скопируйте содержимое каталога win32-msvc2013, отредактируйте qmake.conf: установите _MSC_VER до 1900 и обновите весь текст с 2013 по 2015 год, когда это необходимо:

    введите описание изображения здесь

  • Измените файл makefile.win32 в каталоге {prefix dir}/qmake/: найдите все вхождения win32-msvc2013 и добавьте win32-msvc2015 следующим образом:

    введите описание изображения здесь

    введите описание изображения здесь

  • Теперь из командной строки Visual Studio 2015

    введите описание изображения здесь

    run (это примеры команд, дополнительные команды могут отличаться в зависимости от потребностей сборки):

    configure -make nmake -platform win32-msvc2015 -prefix c:\Qt-2015\4.8.6\msvc2015 -opensource -confirm-license -opengl desktop -nomake examples -nomake tests

    Опция -make nmake это необходимо, потому что configure.exe ищет по умолчанию max max vs. 2013 nmake, иначе он использует make.

  • Затем для команды создания одного ядра

    nmake

    (или jom.exe -jN, где N <= количество ядер ЦП).

    Это все. Этот пример без Webkit, примеров и демонстраций - для скорости. Для меня требуется ~ 1,5 часа, чтобы опираться на одно ядро.