Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Serega от Июль 01, 2018, 13:42



Название: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 01, 2018, 13:42
Задался целью разобраться серьезнее с Qt и поэкспериментировать/потренироваться, собрав все самое необходимое и новое. Необходимо будет работать с: мультимедиа аудио/видео, текстом, HTML...
В связи с этим первый вопрос. Какие библиотеки порекомендуете установить? И чего будет недоставать при сборке Qt, описанной ниже?
Возможно, придется установить несколько Qt-сборок?

Второй вопрос, собственно по сборке (что не учел и что понадобится), и конкретно по сборке документации (как собрать).
Сборка в отдельную папку:
1. Собираю в системе:
Ноутбук i5-2430M/12Gb/SVGA GF GT555M
Windows 7-64

2. Взял все самое новое:
MSYS-1.0.11 (с MSYS2 что-то не смог разобраться)
i686-8.1.0-release-posix-dwarf-rt_v6-rev0
qt-everywhere-src-5.11.1.tar (.zip тоже пробовал, для того, чтобы убедиться, что дело не в битом пакете)
qt-creator-opensource-windows-x86-4.6.2
openssl-1.0.2n.tar (openssl-1.0.2o.tar почему то отказался собираться)
icu4c-62_1-src
python-2.7.15.msi (пока не разобрался стоит ли пробовать ставить 3й или, что-то откажется работать)
rubyinstaller-devkit-2.4.4-2-x86
strawberry-perl-5.26.2.1-32bit
LLVM-6.0.0-win32.exe (насколько понял это требуется для QDoc в QT5.11)

И расположил в папках:
C:\MinGW
C:\openssl-1.0.2n
C:\icu
C:\Python27
C:\Ruby24
C:\Strawberry
C:\LLVM

Исходники:
C:\QT\5.11.1

Собираем здесь:
C:\QT\Qt-5.11.1

Для тех, кто будет собирать по подобной схеме:
Копируем (по совету одного из описаний сборки) в папку C:\QT\5.11.1\qtbase\bin файлы библиотеки ICU:
C:\icu\dist\lib\icudt62.dll
C:\icu\dist\lib\icuin62.dll
C:\icu\dist\lib\icuuc62.dll

В папку C:\QT\5.11.1\qtbase\lib файлы:
C:\icu\dist\lib\icudt.dll
C:\icu\dist\lib\icuin.dll
C:\icu\dist\lib\icuuc.dll

В папку C:\QT\5.11.1\qtbase\include копируем папки с файлами заголовков:
C:\icu\dist\include\layout - ЭТОЙ ПАПКИ НЕ НАШЕЛ (взял с C:\icu\source\layoutex)
C:\icu\dist\include\unicode
C:\openssl-1.0.2n\dist\include\openssl

После сборки Qt копируем в папку C:\Qt\Qt-5.11.1\bin файлы (иначе Qt не будет компилировать):
C:\icu\dist\lib\icudt62.dll
C:\icu\dist\lib\icuin62.dll
C:\icu\dist\lib\icuuc62.dll
C:\Qt\MinGW\bin\libgcc_s_dw2-1.dll
C:\Qt\MinGW\bin\libstdc++-6.dll
C:\Qt\MinGW\bin\libwinpthread-1.dll
C:\Qt\5.11.1\qtbase\bin\qt.conf
C:\Qt\5.11.1\qtbase\bin\fixqt4headers.pl

3. Закинул qt5vars.cmd в C:\QT\5.11.1 с содержимым:
SET _ROOT=C:\QT\5.11.1
SET QT_INSTALL=C:\QT\Qt-5.11.1
SET MINGWDIR=C:\MinGW
SET PYTHON2DIR=C:\Python27
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PYTHON2DIR%;%PATH%
:: Эта парочка, скорее всего лишняя:
SET PATH=C:\icu\dist\bin;%PATH%
SET PATH=C:\openssl-1.0.2n\dist\bin;%PATH%
cmd /k

Запускаем и получаем такие пути:
C:\QT\5.11.1>SET PATH=C:\openssl-1.0.2n\dist\bin;C:\icu\dist\bin;C:\QT\5.11.1\qt
base\bin;C:\QT\5.11.1\gnuwin32\bin;C:\Python27;C:\MinGW\bin;C:\Ruby24\bin;C:\Win
dows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPow
erShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program
Files\7-Zip;C:\LLVM\bin;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Straw
berry\perl\bin

4. Не закрывая консоли, сконфигурировал:
configure -prefix %QT_INSTALL% -I "C:\openssl-1.0.2n\dist\include" -L "C:\openssl-1.0.2n\dist\lib" -I "C:\icu\dist\include" -L "C:\icu\dist\lib" -platform win32-g++ -debug-and-release -sse2 -openssl -icu -opensource -no-angle -qt-sqlite -plugin-sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs -make tools -opengl desktop

5. Собираем (отключив антивирус):
mingw32-make -j5 (5 часов)
mingw32-make -j5 install

6. Далее в той же консоли (не закрывая) запустил командный файл conf4_docs.cmd с содержимым:
SET QT_INSTALL=C:\QT\Qt-5.11.1
SET PATH=%QT_INSTALL%\bin%PATH%
SET LLVM_INSTALL_DIR=C:\LLVM
SET QT_INSTALL_DOCS=C:\QT\Qt-5.11.1\doc

Получаем такие пути:
C:\QT\5.11.1>SET PATH=C:\QT\Qt-5.11.1\bin;C:\openssl-1.0.2n\dist\bin;C:\icu\dist
\bin;C:\QT\5.11.1\qtbase\bin;C:\QT\5.11.1\gnuwin32\bin;C:\Python27;C:\MinGW\bin;
C:\Ruby24\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows
\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\Phys
X\Common;C:\Program Files\7-Zip;C:\LLVM\bin;C:\Strawberry\c\bin;C:\Strawberry\pe
rl\site\bin;C:\Strawberry\perl\bin

7. Пытаемся собрать документацию:
mingw32-make -j5 docs

Получаем:
"C:\QT\Qt-5.11.1\bin\qdoc.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
mingw32-make[6]: *** [Makefile.Debug:1174: prepare_docs] Error 9009
mingw32-make[6]: Leaving directory 'C:/QT/5.11.1/qtbase/src/corelib'
mingw32-make[5]: *** [Makefile:315: debug-prepare_docs] Error 2
mingw32-make[5]: Leaving directory 'C:/QT/5.11.1/qtbase/src/corelib'
mingw32-make[4]: *** [Makefile:1796: sub-corelib-prepare_docs] Error 2
mingw32-make[4]: Leaving directory 'C:/QT/5.11.1/qtbase/src'
mingw32-make[3]: *** [Makefile:435: sub-src-prepare_docs] Error 2
mingw32-make[3]: Leaving directory 'C:/QT/5.11.1/qtbase'
mingw32-make[2]: *** [Makefile:2320: module-qtbase-prepare_docs] Error 2
mingw32-make[2]: Leaving directory 'C:/QT/5.11.1'
mingw32-make[1]: *** [Makefile:1459: html_docs] Error 2
mingw32-make[1]: Leaving directory 'C:/QT/5.11.1'
mingw32-make: *** [Makefile:1462: docs] Error 2

qdoc.exe действительно нет в папке Qt-5.11.1\bin.

Цитировать
As of this writing, users wishing to build and/or run QDoc must install LLVM 3.9 or greater and set the variable LLVM_INSTALL_DIR accordingly. The pre-built binaries needed can be found here.
Не знаю, как с этим работать и поступил по простому, выбрал по указанной ссылке LLVM-6.0.0-win32.exe, установил в каталог C:\LLVM, как видно выше создал переменную SET LLVM_INSTALL_DIR=C:\LLVM. Дальше, как видим выше, ничего хорошего не получилось.

_______________________
Справедливости ради, хочу сказать, что собирал QT-5.9.6 по такой же схеме. Документацию собирал и она собирается:
mingw32-make -j5
mingw32-make -j5 install
Однако как не пытался, но мне не так и не удалось собрать документацию в целевой папке. Документация собирается в исходной, чего только не делал (наверное, только нужного шага не сделал), перерыл интернет, потратил несколько дней и решил, наконец, посоветоваться. Но там хоть простым копированием (с исходной в целевую) запустил документацию (насколько это правильно не знаю).
Так же и с Qt-5.10. Там собирается только в исходной папке (хотя какие то предупреждения уже выдает), но все-таки собирается, хотя вроде тоже уже требуется LLVM/libllvm:
Цитировать
Note: from Qt version 5.10 LLVM/libllvm version >= 3.9 is required to build QDoc. See Installing clang for QDoc. If LLVM is not installed or it would not be found in package tree of your system, QDoc will not be built and you will not be able to build documentation. Once LLVM is installed the LLVM_INSTALL_DIR environment variable must be set pointing to its top-level installation directory.

Топик получился не малый, но решил описать все подробнее, что бы опытные Гуру заметили ошибки, а так же дали дельные советы. Заранее огромное спасибо, что хотя бы почитать не сочли за труд.
Итак, как все таки собрать документацию в Qt-5.11.1, причем в папку сборки самой QT - C:\QT\Qt-5.11.1\doc?
И что еще следует полезного установить и пригодится для полного счастья, что бы можно было уже ни о чем не беспокоиться, тренироваться и пытаться, что-то творить, в хорошем смысле этого слова?



Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: ViTech от Июль 01, 2018, 14:35
А чем не устраивают готовые сборки из Qt Online Installer (https://www.qt.io/download-qt-installer)? Или цель именно самому собрать Qt?


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 01, 2018, 14:43
Можно конечно воспользоваться и готовыми сборками, но как писал выше, все таки есть желание чуть больше разобраться с этой "кухней" и постепенно научиться собирать сторонние модули, если понадобятся. Кроме того иногда ковыряю открытый совместный проект, который требует сборки Qt.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Авварон от Июль 01, 2018, 15:10
кажется, не собрался qttools (или где там qdoc живет). Не знаю, должен ли он собираться по умолчанию, но можно просто сделать туда cd, qmake && make && make install


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Пантер от Июль 01, 2018, 15:50
Можно конечно воспользоваться и готовыми сборками, но как писал выше, все таки есть желание чуть больше разобраться с этой "кухней" и постепенно научиться собирать сторонние модули, если понадобятся. Кроме того иногда ковыряю открытый совместный проект, который требует сборки Qt.
Тоже всегда под винду собирал сам. Хотя, я гентушник, это неизлечимо. :)


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 14, 2018, 11:04
(Описанная ниже последовательность сэкономит особенно новичкам массу нервов и времени. Сложно дойти до конца. Дело в том, что судя по всему описания в интернете попросту списаны друг у друга. Если уж пишите то пишите ВСЕ. Несколько дней потратил только на установку MSVC2017. Не то что бы это оказалось сложно. Оказалось сложно понять, что не так. Если уж пишите фразы подобно Установите MSVC и дальше пакет SDK для Windows, а затем все у вас срастется. То это вовсе оказалось не так. Но это немного лирики.)

Задача: собрать среду разработки с максимально новыми компонентами + наиболее популярные сторонние библиотеки для работы с мультимедиа и текстом. На первом этапе будем считать цель достигнутой при условии, что запускаются все примеры стандартного комплекта.


1. Собираю в системе:
Ноутбук i5-2430M/12Gb/SVGA GF GT555M
Windows 7-64

2. На этот раз собирать систему будем, используя офлайн инсталлятор:
qt-opensource-windows-x86-5.11.1.exe (2.39GB)

И все бы было намного проще, если бы не одно НО. Инсталлятор не предоставляет ни одной 32х разрядной сборки с WebEngine. Собственно вообще нет варианта MSVC2017_32. Его и будем пытаться собрать самостоятельно.

Дополнительно скачиваем (если при установки какие то пакеты потребуют поставить галочки на согласие прописать в путях, ставьте):
icu4c-53_1-src.zip
openssl-1.0.2o.tar
python-2.7.15.msi
rubyinstaller-devkit-2.4.4-2-x86.exe
strawberry-perl-5.26.2.1-32bit.msi
DXSDK_Jun10.exe
pthreads-w32-2-9-1-release.zip
sqlite-dll-win32-x86-3240000.zip
LLVM-6.0.0-win32.exe (начиная с QT5.11 требуется для QDoc)
jom_1_1_2.zip

И располагаем в папках:
C:\icu

С icu немного подскажу. Дело в том, что собираем icu с использованием Cygwin. Два варианта установщика setup-x86.exe и setup-x86_64.exe. Какой ставить не особо разбирался. Воспользовался setup-x86.exe. Установка онлайн и надо будет выбрать необходимые компоненты, процедура не очевидна. А между тем, просто в строке поиска последовательно прописываем: make, dos2unix и binutils. Будут оставаться нужные компоненты, для каждого надо нажать мышкой, что бы надпись рядом с пакетом сменилась на install. После установки у вас так же появится папка с этими компонентами, с которой, если понадобится, можно будет переустановить Cygwin в режиме офлайн.
Далее с консоли MSVS2017 (запустить ее можно с кнопки Пуск - Все программы...) вводим следующие команды:
set PATH=%PATH%;C:\cygwin\bin
cd C:\icu\source
dos2unix *
dos2unix -f configure
dos2unix * (еще раз иначе выскочит ошибка '\r': command not found)
bash runConfigureICU Cygwin/MSVC -prefix=/cygdrive/c/icu/dist
make
make install

C:\openssl-1.0.2o
C:\Python27
C:\Ruby24
C:\Strawberry
C:\DXSDK
C:\pthreads
C:\sqlite
C:\LLVM
C:\jom_1_1_2

3. Установка Visual Studio Community 2017 v15.7.4
Если вы хотите скачать дистрибутив (38.6GB), делаем это следующим образом:
vs_community.exe --layout D:\vs2017 --lang en-US ru-RU
Однако русскую локализацию можно не ставить (на первых парах все равно придется снимать галочку, иначе будут проблемы):
vs_community.exe --layout D:\vs2017 --lang en-US
Итак, снимаем галочку с русской локали и ставим следующие компоненты:
(https://b.radikal.ru/b25/1807/b5/f080a28b3daet.jpg) (https://b.radikal.ru/b25/1807/b5/f080a28b3dae.jpg)
Если сам MSVC2017 не нужен можно воспользоваться Build Tools, либо онлайн, либо скачать:
Microsoft Visual Studio 2017 Build Tools [15.7.0-15.7.4] (16.1GB)
В дальнейшем можно будет ужать пакет, оставив только необходимые компоненты.

Так же понадобится пакет SDK для Windows 10 (17134.12.180419-0858.rs4_release_svc_prod2_WindowsSDK)
Можно инсталлировать, отметив галочки. Я просто распаковал и устанавил:
X64 Debuggers And Tools-x64_en-us
X86 Debuggers And Tools-x86_en-us

4. Установка Qt 5.11.1
Скачиваем офлайн установщик qt-opensource-windows-x86-5.11.1.exe и ставим в папку по умолчанию C:\Qt\Qt5.11.1 следующие компоненты:
(https://d.radikal.ru/d41/1807/fc/7935b15e1b59t.jpg) (https://d.radikal.ru/d41/1807/fc/7935b15e1b59.jpg)
Заметьте, что отмечаем Sources которые понадобятся, что бы скомпилировать свой вариант 32х битной msvc2017_32. Исходники (Sources) окажутся в папке C:\Qt\Qt5.11.1\5.11.1\Src.

Копируем в папку C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\bin файлы библиотек:
C:\icu\dist\lib\icudt53.dll
C:\icu\dist\lib\icuin53.dll
C:\icu\dist\lib\icuuc53.dll
C:\openssl-1.0.2o\dist\bin\libeay32.dll
C:\openssl-1.0.2o\dist\bin\ssleay32.dll
C:\sqlite\sqlite3.dll

В папку C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\lib файлы:
C:\icu\dist\lib\icudt.lib
C:\icu\dist\lib\icuin.lib
C:\icu\dist\lib\icuuc.lib
C:\openssl-1.0.2o\dist\lib\libeay32.lib
C:\openssl-1.0.2o\dist\lib\ssleay32.lib

В папку C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\include копируем папки с файлами заголовков ICU и OpenSSL:
C:\icu\dist\include\layout
C:\icu\dist\include\unicode
C:\openssl-1.0.2o\dist\include\openssl

Каталог ресурсов Src сохранил дополнительно на диске D:\ на случай дальнейших экспериментов.

5. Собирать будем раздельно в каталоге C:\msvc2017_32.
В C:\Qt\Qt5.11.1\5.11.1\Src создаем файл msvc2017_32.cmd с содержимым:

SET _ROOT=C:\Qt\Qt5.11.1\5.11.1\Src
SET QT_INSTALL=C:\msvc2017_32
SET PATH=C:\sqlite;%PATH%
SET PATH=C:\pthreads\Pre-built.2\dll\x86;%PATH%
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%

SET QTDIR=
SET QMAKESPEC=
SET _ROOT=

set cl=/MP
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
cmd /k

6. Конфигурирование сборки.
В каталоге C:\Qt\Qt5.11.1\5.11.1\Src запускаем файл msvc2017_32.cmd
После чего видим прописанные пути и консоль MSVC 2017 инициализированной для 'x86':

C:\Qt\Qt5.11.1\5.11.1\Src>SET PATH=C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\bin;C:\Qt\Qt
5.11.1\5.11.1\Src\gnuwin32\bin;C:\pthreads\Pre-built.2\dll\x86;C:\sqlite;C:\msvc
2017_32\bin;C:\Ruby24\bin;C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C
:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C
:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\7-Zip;C:\
Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\LLVM\bin

...

C:\Qt\Qt5.11.1\5.11.1\Src>CALL "C:\Program Files (x86)\Microsoft Visual Studio\2
017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.7.4
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'
C:\Qt\Qt5.11.1\5.11.1\Src>

7. Не закрывая консоль, запускаем строку конфигурирования:
configure -prefix %QT_INSTALL% -I "C:\openssl-1.0.2o\dist\include" -L "C:\openssl-1.0.2o\dist\lib" -I "C:\icu\dist\include" -L "C:\icu\dist\lib" -platform win32-msvc -mp -debug-and-release -webengine-proprietary-codecs -sse2 -openssl -icu -opensource -qt-sqlite -plugin-sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs -make tools -opengl dynamic

Спустя немного времени на предложение о лицензионном соглашении просто нажимаем y и Enter. Дожидаемся окончания конфигурирования.

8. Снова, не закрывая консоли, вводим последовательно:
nmake
nmake install

На самом деле вроде как запускали в многопоточном режиме(set cl=/MP и -mp), однако nmake довольно долго работает. На моем ноутбуке i5-2430M/12Gb/SVGA GF GT555M, этот процесс занял 13 часов 35минут.
Можно сэкономить примерно полтора часа. Если использовать jom. В этом случае просто в путях пропишите C:\jom_1_1_2; (если конечно распаковали его в эту папку) и вам будет предложено воспользоваться:
jom
jom install

9. После сборки копируем в папку C:\msvc2017_32\bin файлы:
C:\icu\dist\lib\icudt53.dll
C:\icu\dist\lib\icuin53.dll
C:\icu\dist\lib\icuuc53.dll

Туда же копируем файлы:
C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\bin\qt.conf
C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\bin\fixqt4headers.pl

10. Поскольку в этот раз облегчили себе задачу, собирать дополнительно документацию и примеры не придется. Они установилены при инсталляции Qt5.11.1.
Теперь у нас наряду со сборками:
mingw53_32
msvc2017_64
Имеется сборка msvc2017_32.
Прописываем новый комплект в Qt, не забывая, что сборка находится в C:\msvc2017_32.

11. Казалось бы радоваться. Однако наша задача заключалась в получении сборки, которая запускала бы все стандартные примеры из комплекта Qt.

Так вот примеры, использующие WebEngine в режиме отладки, вылетают с сообщением: Программа неожиданно завершилась. А в режиме релиза запускается окно, но контента нет, как например в случае со сборкой msvc2017_64, полученной при инсталляции.
Остальные примеры, вроде как запускаются.

Я прошел семь кругов ада, испробовав все и потратив пару недель именно на то, что бы установить правильно WebEngine, бесконечно экспериментируя и долго ожидая окончания компиляции, что бы увидеть, что снова все напрасно.
Например, сейчас снова пытаюсь собрать. На этот раз, при установке Visual Studio Community 2017, не ставил Windows 8.1 SDK... и VC++ 2015.3 v14.00(140)... Может они конфликтуют с новыми пакетами. Оставлял их, что бы работать с пакетами msvc2015_32, msvc2015_64 и дособирать их с WebEngine. Конфигурации msvc2015_32, msvc2015_64 имеются в установщике Qt, но собираются без WebEngine.

Вы моя последняя надежда Гуру. Что не так сделано?
Компилируется вроде нормально, но если это о чем то серьезном говорит, то при компиляции были такие сообщения:
...QtWebEngineCore_cc.pdb"
cl: Command line warning D9025 : overriding '/W3' with '/W4'
cl: Command line warning D9025 : overriding '/02' with '/01'
cl: Command line warning D9025 : overriding '/01' with '/02'
cl: Command line warning D9025 : overriding '/W4' with '/W3'


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 22, 2018, 10:39
Снова наэкспериментировался, но основная проблема не решена.
Попутно, все таки, разобрался почему не компилировалась документация. Но это малоинтересный вопрос.

Обобщу реальную проблему:
Ноутбук i5-2430M/12Gb/SVGA GF GT555M
Windows 7-64
Visual Studio Community 2017 v15.7.5
qt-opensource-windows-x86-5.11.1.exe (2.39GB) С включенной галочкой Sources. С этими ресурсами и пытаюсь получить 32битную сборку:
MSVC 2017 32bit.
Сборка проходит вполне без проблем, библиотеки Qt webengine, присутствуют. Примеры собираются и те которые работают с webengine.
Но есть пара нерешенных вопросов:
1. Проблема не такая значительная и вероятно решение ее не так сложно. Не тратил на не время. В примерах с webengine, в Release режиме не отображается внутренний контент. Причем как в поставляемом комплекте MSVC 2017 64bit, так и в сборке MSVC 2017 32bit.
Поставляемая сборка MSVC 2017 64bit в режиме Debug, внутренний контент отображает.
Внешний контент отображается в обоих сборках.

2. Вторая проблема посерьезнее. Примеры с webengine работают только в режиме Release.
А вот в режиме Debug примеры вылетают с сообщением: The program has unexpectedly finished.
Проблема только с самосборкой, в поставлемой сборке MSVC 2017 64bit все в порядке.

Вдоволь наэкспериментировался. Однако безрезультатно.
В сети нашел подобную проблему и пытался применить решение, путем копирования в бинарники файла ucrtbased.dll. Но это не помогло. Вроде это работало вплоть до Qt 5.9.
Начиная с Qt 5.10 этот баг имеет место быть и опубликован как нерешенный. Это как игра в кошки мышки с ms.

На сколько понимаю поставляемая сборка компилировалась Visual Studio 2017 v15.1. Которую так же пытался использовать, однако с ней библиотека Qt webengine вовсе не собралась, хотя для перестраховки полностью переустановил систему. Возможно это решило бы проблему, будь я чуточку везучей :). В оригинале с сайта Visual Studio 2017 v15.1 уже не скачать, поэтому скачал просто с сести.

Что еще пытался сделать? В принципе работал методом проб и ошибок. Например, icu53.1 компилируется Visual Studio 2017 с ошибками. В принципе нужные библиотеки собираются их и использовал. Qt webengine с ними собирается, но проблема не решена. Компелировал icu62.1 без проблем, но результат тот же. Хорошо, просто скачал ближайший готовый комплект скомпелированный с помощью Visual Studio 2017 - icu58.2. Результат тот же.
Причем для верности скомпилировал 3 комплекта QT используя:
jom - 11.56
nmake c mp - 13.52
nmake - 15.28
Мало ли, авось что и сработает :). Не помогло. Рядом время затраченное на сборку.
На всякий случай компелировал дебажные варианты библиотек icu. Все это без толку.

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


Пока моя фантазия иссякла.
Есть ли те кто все-таки собирал удачно Qt 5.11 c webengine? Или это абсолютная проблема для всех?
Мой перфекционизм меня погубит, но неужели больше никто не экспермиентировал?


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: kambala от Июль 22, 2018, 12:29
абсолютным новичкам надо ставить готовые комплекты и не мучаться, а не сидеть и часами компилировать библиотеки :)


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: ViTech от Июль 22, 2018, 12:44
Есть ли те кто все-таки собирал удачно Qt 5.11 c webengine? Или это абсолютная проблема для всех?
Мой перфекционизм меня погубит, но неужели больше никто не экспермиентировал?

Тех, кто сам собирает Qt - не много, из них собирают все библиотеки (обычно убирают WebEngine, Multimedia и т.п.) ещё меньше, а перфекционистов среди них совсем мало :).

А вот в режиме Debug примеры вылетают с сообщением: The program has unexpectedly finished.
Проблема только с самосборкой, в поставлемой сборке MSVC 2017 64bit все в порядке.

Пробовали разобраться в причинах вылета? Может в системе не все библиотеки есть именно для Debug сборки или они не подходящей версии? Как минимум Dependency Walker`ом посмотреть.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 22, 2018, 12:53
абсолютным новичкам надо ставить готовые комплекты и не мучиться, а не сидеть и часами компилировать библиотеки :)
Однако я не абсолютный новичок. Но поздновато взялся за программирование и делаю это набегами. Каюсь, это мой третий набег. И участвую в довольно известном совместном проекте. Но мне надоело быть на побегушках, поскольку взялся за программирование поздно, мои работы отбираются как конфеты у ребенка, приводят их в порядок и подписываются свои именем. Мне уже сложно выработать культуру кода, по той же причине - поздновато взялся за это дело. Но я хочу попробовать создать с нуля свой проект в этот раз.

Как раз и взял готовую сборку (офлайн инсталлятор). Но ведь сказано было выше, Qt 5.11 не содержит ни одной 32х битной сборки поддерживающей Qt webengine. Пытаюсь укомплектовать. Сборку провожу довольно удачно.
Хоть и поверхностно, но полагаю несколько более глубже освоил инструменты сборки, чем начинающие.
Кроме того пока экспериментирую, подтягиваю знания, вспоминаю приемы. Года два не брался за "перо".
Все, что сейчас добиваюсь, собрать систему максимально укомплектованную для учебы, экспериментов и то что может понадобиться в проекте: работа с мультимедиа и текстом.
Вот поэтому и обращаюсь за помощью.
Тем более если Гуру не могут ни собрать ни посоветовать, причем тут начинающие? Если все таки удастся скомпилировать абсолютную сбоку, это пригодится не только новичкам. Мне кажется, то что я описал в чем то лучше известных описаний сборок Qt и тем более если довести дело до конца, причесать и чуть более подробно описать последовательность (некоторые крутые повороты просто опустил, что бы не было слишком длинно), можно закрепить для новичков.

Кстати, помню с вашей помощью и других когда то упорно тут отрабатывал пару кодов. И это стало довольно популярно или модно не только на форуме :). Мы не скрывали исходники.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 22, 2018, 13:04
Пробовали разобраться в причинах вылета? Может в системе не все библиотеки есть именно для Debug сборки или они не подходящей версии? Как минимум Dependency Walker`ом посмотреть.
Пробовал на сколько понимаю. Зашел в каталог сборки Debug и скопировал все библиотенки которые были запрошены + на всякий случай и ucrtbased.dll. Библиотеки программа перестла спрашивать, но при этом вообще не проявляет признаков жизни.
Опять же методом проб и ошибок хотел подсовывать, переименовывая библиотеки с релиза... До этого дело не дошло.

Библиотеки видимо все имеются. Во всяком случае копировал теже библиотеки в релиз каталог (естественно релизные версии) и все запускается.
На счет версий думал над этим, но я не знаю как проверить. Видимо придется освоить, как это делается. Не с знаком с инструментом Dependency Walker.

А вообще баг описан здесь https://bugreports.qt.io/browse/QTBUG-68509



Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: ViTech от Июль 22, 2018, 13:24
Пробовал на сколько понимаю. Зашел в каталог сборки Debug и скопировал все библиотенки которые были запрошены + на всякий случай и ucrtbased.dll. Библиотеки программа перестла спрашивать, но при этом вообще не проявляет признаков жизни.
Нужно смотреть, какие библиотеки использовались при сборке (Build Environment) и при запуске (Run Environment). Они могут называться одинаково, но быть разных версий или собраны компиляторами разных версий, что тоже может повлиять на работоспособность.

Опять же методом проб и ошибок хотел подсовывать, переименовывая библиотеки с релиза...
Это плохая идея.

Библиотеки видимо все имеются. Во всяком случае копировал теже библиотеки в релиз каталог (естественно релизные версии) и все запускается.
На счет версий думал над этим, но я не знаю как проверить. Видимо придется освоить, как это делается. Не с знаком с инструментом Dependency Walker.
Значит придётся освоить и познакомиться :).

А вообще баг описан здесь https://bugreports.qt.io/browse/QTBUG-68509
Может и этот баг влияет, не исключено.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 22, 2018, 13:36
Спасибо за советы. Буду пробовать разбираться с версиями.

Или в конце концов просто подтяну 32х битную сборку от 15й версии VS с инсталлятора Qt5.10. Там работает Qt webengine.
Или дебажить, в случае необходимости, с msvc64.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 22, 2018, 16:43
Не разбирался как работать с Dependency Walker 2.2.
Все что могу пока посмотреть, ничего не понимая где рыть (слева релиз, справа дебаг):
(https://c.radikal.ru/c10/1807/5d/186d155d8871t.jpg) (https://c.radikal.ru/c10/1807/5d/186d155d8871.jpg)
И все что может меня интуитивно смущать это 140, а не 141. С другой стороны картина ниже таже.

Такова картина от работающей официальной 64х битной сборки:
(https://d.radikal.ru/d16/1807/4f/936175f04fbat.jpg) (https://d.radikal.ru/d16/1807/4f/936175f04fba.jpg)
Конечно разницу вижу, но только визуально :).

Вроде нашел где искать версии библиотек, только как то не особо легче. Вот, что то  интуитивно подозрительное в дебажной версии (присутствие обоих версий библиотек):
(https://b.radikal.ru/b35/1807/0a/9cdcdccaf51bt.jpg) (https://b.radikal.ru/b35/1807/0a/9cdcdccaf51b.jpg)


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Igors от Июль 23, 2018, 07:06
Любовь к процессу "сборки" - извращение. И умение "собирать" пусть полезное, а иногда и необходимое - но не имеет к программированию никакого отношения.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: ssoft от Июль 23, 2018, 07:30
Не разбирался как работать с Dependency Walker 2.2.
...

Так нужно разбираться, читать мануалы и т.п.

Walker ясно дает понять, что 64 битные библиотеки не подходят для 32 битной сборки.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 23, 2018, 08:41
На ночь глядя мне было не до мануалов.
На сколько понял нет необходимости обращать внимание на эту ошибку. Она выдается по причине того, что запускал 64х битную версию Walker.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: kambala от Июль 24, 2018, 22:25
Или в конце концов просто подтяну 32х битную сборку от 15й версии VS с инсталлятора Qt5.10. Там работает Qt webengine.
Или дебажить, в случае необходимости, с msvc64.
это сразу и надо было делать :) и не тратить кучу времени, которое могло быть потрачено на повышение практики/культуры программирования, раз ты поздновато взялся за программирование.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: ViTech от Июль 25, 2018, 11:37
это сразу и надо было делать :) и не тратить кучу времени, которое могло быть потрачено на повышение практики/культуры программирования, раз ты поздновато взялся за программирование.

Не всё так однозначно. Учитывая сколько всего напихали в последние версии Qt (особенно 5.11), умение самому собирать только нужные части может вновь оказаться полезным :). Готовые сборки из инсталлятора слишком жирные получаются, вряд ли кому нужен весь тот набор библиотек одновременно.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 27, 2018, 06:25
это сразу и надо было делать :) и не тратить кучу времени, которое могло быть потрачено на повышение практики/культуры программирования, раз ты поздновато взялся за программирование.
Все таки наверное я не одинок в своем стремлении, но большинство предпочитают наблюдать чем дело кончится.
Чувствую себя более уютно, когда все настроено и не приходится отвлекаться на переделки и посторонние разборки, во время рабочего процесса. Хочется настроить и разрабатывать сам код, погрузившись в творческий процесс.
Есть на что потратить время при очередной компиляции Qt. Кроме того возможно тут есть некоторые, попутно исследуемые, вещи которые будут полезны непосредственно на этапе разработки.
Есть надежда, что в этот раз все получится, жду окончания компиляции. Если нет, то не за горами Qt 5.11.2. Вроде как на Август намечен выпуск. Возможно там исправят баг.

Повторю, занялся я сборкой по двум причинам:
- Нужен собранный Qt для поддержки старого совместно проекта. Привычка собирать Qt идет от старого проекта, через который я и приобщился к C/C++/Qt.
- В Qt 5.11 нет ни одной 32х битной сборки с поддержкой Qt webengine. Ни msvc2015, ни msvc2017. Собственно вообще нет ни одной 32х битной сборки с поддержкой любого ВебДвижка. Это еще та проблема, поскольку мне придется пытаться прикрутить QWebKit к MinGW в Qt 5.11, для поддержки старого проекта. На сколько знаю официально поддержка существует до Qt 5.9. Но не хочется огород городить.

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


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 28, 2018, 07:45
В общем все тщетно.
Компилировал с:
- MSVC 2017v5.1(5.2) c Windows 10 SDK (ver. 10.0.15063.468). Qt WebEngine вовсе не собирается, хотя в Qt 5.11 Tools and Versions указан именно MSVC 2017v5.1.

- MSVC 2017v5.6 c Windows 10 SDK (ver. 10.0.16299.91). Сборка происходит, но проблемы теже, что и при компиляции с новейшей версией MSVC 2017v5.7.5 c Windows 10 SDK (ver. 10.0.17134.0)
Пробовал MSVC 2017v5.6 - vcvarsall.bat с ключом amd64_x86. Бесполезно. Кстати вопрос, а чем собственно он отличается и стоит ли его использовать на win64? Время компиляции фактически одно и тоже, с точностью до минуты. На несколько файлов в этой сборке оказалось больше. Очень надеялся, что поможет.

Вероятно сборку я произвожу верно, Qt 5.9.6 (с MSVC 2017v5.2 и MSVC 2017v5.6) собирается и работает без проблем по предложенной схеме. Что уже радует. Все таки научился собирать все стандартные модули и docs для Qt5.11. Если помним была проблема - qdoc.exe не было в исходниках. Разобрался, что было не так. Однако пока не разобрался как собирать сами доки в указанную папку. Собственно, не занимался вплотную этим вопросом.
Сейчас делаю контрольную компиляцию, чтобы собрать и проверить ранее не собиравшийся модуль vulkan. Единственный модуль который не пробовал, но который при установке с инсталлятора ставится. Будет потеха если после этого все заведется (в зависимостях его нет). :) Собираю, в этот раз, не в стороннюю папку, а в папку предложенную самим Qt.

Что еще необычного. Папка с исходниками Qt 5.9.6 разрастается примерно до 20 с лишним Gb, папка с исходниками Qt 5.11.1 практически в три раза больше и имет объем больше 60Gb. Довольно странно, но надо учитывать это если решите сами собирать Qt.

Qt 5.11 не имеет возможности компиляции полноценной 32х битной сборки с Qt WebEngine. Штатная 64х битная так же работает не корректно, не отображает встроенный контент в режиме релиз (примеры с внешними ссылками работают корректно). Т.е. окно запускается, контента нет. В дебаг режиме все работает корректно.
Это при том, что Qt 5.9.6 собирается без всяких проблем и работает корректно как в дебаг, так и в релиз режимах.

Придется ждать выхода Qt 5.11.2, который вроде намечен на август-сентябрь. А там Qt 5.12 не за горами.
Ни чего не поделать, буду пользоваться тем, что есть.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: sergek от Июль 28, 2018, 11:29
Коллега,
qt всего лишь инструмент. Инструмент надо знать настолько, насколько он необходим для  для реализации ваших идей. Даже если вы детально его изучите изнутри, вы всего лишь будете знать, как это делают другие. Как это вам поможет избежать того, что " мои работы отбираются как конфеты у ребенка, приводят их в порядок и подписываются свои именем"?
Вот если появится задача, решение для которой для вас неочевидно, не грех посмотреть, как это делают другие. Прислушайтесь все ж к советам, которые вам здесь дают, не тратьте время. Работайте над самой задачей. Извините за совет;)


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 28, 2018, 13:18
По поводу чужого кода, все так учимся и перенимаем чужой опыт, как же без этого. Но имел ввиду несколько иное. А по существу вопроса, подобного рода топики не место для голосования, надо не надо. Опыт однозначно пригодится другим, хотя бы потому, что не будут делать того, что делаю я. Но есть и другие, которым это пригодится с практической точки зрения. Трачу время на это столько сколько считаю нужным. Работаю на декстопе, экспериментирую на ноубуке. Надеялся получить более полезные советы или хотя бы узнать, что у кого-то Qt 5.11 работает должным образом в полном объеме. Я не мог ожидать, что этот довольно серьезный баг мог быть в официальном релизе. Тренируясь со сборками я видел много вопросов почему нет и мольб сделать в инсталляторе нормальный msvc2017_32. На что один ответ - вам надо, можете сами скомпилировать. Ну вот и пытаюсь. Что тут глупого? Только то, что я якобы потерял месяц? Ну комуто сэкономил и не только тем кому нужен Qt WebEngine, а просто тем кому нужна просто нормальная 32х битная сборка msvc2017. И если вы думаете, что это тривиальная задача, то могу уверить, что понадобилось бы потратить не мало времени даже на это. Я просто не стал заострять внимание на то с чем пришлось столкнуться и дал сразу готовое решение.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Авварон от Июль 28, 2018, 14:08
Ладно, спущусь со своей колокольни.
Почему вы компилируете сорцы из инстоллера? Они пропатчены неким образом и могут создавать дополнительные проблемы. Они нужны скорее для отладки, чем для компиляции (нет, в теории их можно собрать и даже мб это должно быть проще (в теории) - там вроде бы меньше зависимостей).

Берете, качаете qtbase (https://github.com/qt/qtbase) из гитхаба. Собираете. Если собралсь, качаете корневой репо (https://github.com/qt/qt5) с остальными модулями. Модули можно выкачивать по одному. Собираете.

Если вам нужен webengine, ну скачайте только его и зависимости, сэкономите кучу времени на сборке.

Целиком я не собирал Qt уже несколько лет, но вот на этой неделе собирал qtbase на линуксе - пришлось поправить сорцы в одном месте ручками (какая-то проблема с ifdefa'ми). Ничего страшного в этом нет. Если это реальный косяк, его можно залить в геррит (http://codereview.qt-project.org) и все вам будут благодарны.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 28, 2018, 14:34
На самом деле компилировал сырцы не только с инсталлера. Например в предыдущих попытка брал их от сюда http://download.qt.io/official_releases/qt/5.11/5.11.1/single/
Спасибо за совет, возьму с гитхаба, может там уже пофиксили баг.
По поводу заливки, так вроде баг извсетен https://bugreports.qt.io/browse/QTBUG-68509


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Авварон от Июль 28, 2018, 15:08
На самом деле компилировал сырцы не только с инсталлера. Например в предыдущих попытка брал их от сюда http://download.qt.io/official_releases/qt/5.11/5.11.1/single/

Это те же сорцы что в инсталляторе. Я точно не помню, чем они отличаются, но для их соборки не надо было ставить что-то типа руби или какую-то другую дичь (а для сорцов из геррита/гитхаба - надо). Но это было 5 лет назад и мб всё поменялось.
Энивей, в CI у них используются сорцы с геррита.

Если у вас есть краш в _дебаге_ то поправить его проще простого - максимум день на курение исходников в сложном случае. Часто там достаточно тупые ошибки.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Июль 29, 2018, 14:08
Скачал:
https://github.com/qt/qtbase
https://github.com/qt/qt5
https://github.com/qt/qtwebengine
И просто заменил эти файлы в исходниках. Скомпилировал.
Пробовал и новый Qt creator 4.7.0.
Результат тот же.
Все это бесполезно. Ковырять же сами исходники это точно не по мне.
Придется пользоваться тем, что есть и ждать когда, либо разъяснят как компилировать, либо  исправят баг. То что это баг, думаю сомневаться не приходится.
Просто научился компилировать модуль vulkan, хотя вряд ли он мне когда либо понадобится, разве что ради спортивного интереса скомпилировал и возможно кому то это пригодится.

Qt 5.10.1 ведет себя аналогично Qt 5.11.1.

Ближайший нормально компилируемый - Qt 5.9.6.




Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Август 05, 2018, 06:16
Стоит ли описать весь процесс сборки, со всеми выкладками? Или хватит того, что есть, хотя есть неточности и опускание подробностей. Или это вовсе не интересно?


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Igors от Август 06, 2018, 05:41
Стоит ли описать весь процесс сборки, со всеми выкладками? Или хватит того, что есть, хотя есть неточности и опускание подробностей. Или это вовсе не интересно?
Ну как "неинтересно"... Необходимость возникает редко, может и раз в неск лет, поэтому рассчитывать на энтузиазм не следует. Но с др стороны когда припечет и вот "надо" - ой хреново. Пару дней уходит только чтобы принюхаться к командной строке, ведь времени прошло много и все начисто забыл. Случалось находил инструкции и искренне благодарен этим людям.

Поэтому хорошо бы поместить Ваши наработки в блог, а "интересно" будет (куда денется)


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Авварон от Август 06, 2018, 17:00
Стоит ли описать весь процесс сборки, со всеми выкладками? Или хватит того, что есть, хотя есть неточности и опускание подробностей. Или это вовсе не интересно?

Это имеет смысл в виде либо подробной инструкции (но как можно меньше буков), либо в виде блога "вот я взял инструкцию с сайта Qt, а там написана полная херня потому что... и далее рассказ об ошибках и как обходили".

Я не особо вчитывался в топик, но я так понял, что проблема у вас с работоспособностью _кода_ а не со сборкой. Краши в Qt нередкость, да, но к процессу сборки отношения имеют мало.

Я бы вот послушал, что мне надо сделать, чтобы пощупать вулкан (я в этом чайник и хз, идёт он в готовой поставке или не идёт, надо ли собирать, если надо, то как).


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Август 06, 2018, 18:06
Это имеет смысл в виде либо подробной инструкции (но как можно меньше буков), либо в виде блога "вот я взял инструкцию с сайта Qt, а там написана полная херня потому что... и далее рассказ об ошибках и как обходили".

Я не особо вчитывался в топик, но я так понял, что проблема у вас с работоспособностью _кода_ а не со сборкой. Краши в Qt нередкость, да, но к процессу сборки отношения имеют мало.

Я бы вот послушал, что мне надо сделать, чтобы пощупать вулкан (я в этом чайник и хз, идёт он в готовой поставке или не идёт, надо ли собирать, если надо, то как).
Целью было: собрать самую свежую сборку, что бы научиться собирать все стандартные библиотеки идущие в штатном инсталляторе и работали все примеры. Воспользовался инсталлятром. Однако единственная предлагаемая сборка которая поддерживает все - это msvc2017_64. Собственно остальные просто не работают с Qt WebEngine. Не говоря уж о том, что от QWebKit вовсе отказались. Так, что Qt5.11.1 выглядит как то ущербно, особенно с MinGW.
Выходит, что идеальный комплект в моем случае должен содержать:
msvc2017_64 + WebEngine
msvc2017_32 + WebEngine
MinGW + QWebKit
И что нибудь для эмуляции андроидов.

msvc2017_32 + WebEngine - подобного стандартная поставка не имеет. Поэтому решил попробовать собрать. И собираю как я понял все правильно. Кривой Qt5.11.1, собственно кривость начинается с Qt5.10. При самостоятельной сборке msvc2017_32 + WebEngine, примеры с WebEngine, если выбираю меню Дебаг, завершаются с сообщением Программа неожиданно завершилась.
Собственно и Релиз не совсем корректно отрабатывает, в частности локальный контент примеров в окне браузера не появляется. Причем этот баг проявляет себя и в штатной сборке msvc2017_64 + WebEngine.
Внешние интернет ссылки работают нормально.

Qt5.9.6 + msvc2017_32 + WebEngine собирается корректно и работают все примеры как в Дебаг, так и в Релиз.

Не жалею, что потратил время на бесконечные экспермиенты. В сознании хоть какой то порядок навелся. Иначе ощущение, что собирал все как юзер, кторый всегда делает все по листочку. Да и все таки есть полезные (думаю всем или как минимум начинающим, что бы не метались туда-сюда в поисках оптимальности) наблюдения.

По поводу Vulkan. Инсталлятор его ставит, на сколько понял. Во всяком случае в штатной библиотеке он есть. Примеры не проверял.
А в ручную собирается довольно легко. Для Windows достаточно скачать и установить Vulkan SDK (LunarG SDK), полагаю это в любом случае надо ставить если нужен Vulkan. При сборке Qt все подхватится и соберется автоматически.
Vulkan SDK именно установить с инсталлятора, например то что поставил видеодрайвер я удалял, поскольку переменные окружения не были прописаны, да и версия была устаревшей.

Попробую описать процесс без лишних букв. А полезные подробности отдельным топиком.


Кстати и с готовым Qt инсталлятором не так все просто оказалось для новичка, наверное и не только. В описаниях и видеоуроках достаточно недоговоренностей, что бы новичек заблудился на пару дней. Для начала пришлось разбираться, почему Qt не видит MCVS компилятор, при его якобы установленном, затем почему не находит те или иные файлы... Это касается нового mcvs2017.
Ранее я работал только с MinGW.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Август 09, 2018, 06:15
Сборка комплекта MSVC2017 32Bit для Qt 5.11.1 в среде Windows 7-64.
Задача: добиться сборки всех компонентов, идущих со штатным комплектом MSVC2017 64Bit и работоспособности всех примеров.

Сборка производилась в системе:
Ноутбук i5-2430M/12Gb/SVGA Intel HD Graphics 3000 + GF GT555M
Windows 7-64
Обновления отключены, однако установлен офлайн пакет обновлений UpdatePack7R2-18.6.15.exe и все свежие драйвера.

Ставить, все таки, лучше на свеж переустановленной системе. Не помешает установить нормальные средства удаления, например Revo Uninstaller Pro, на случай зачистки после экспериментов. А после удаления проверить все папки и удалить, что найдете подозрительного. Это не сложно сделать, открыв показ скрытых папок, ориентируясь на имена папок, время их создания и стандартные места где они могли бы скрываться. И для "наверняка", прогнать CCleaner.

Здесь Qt 5.11 Tools and Versions (http://wiki.qt.io/Qt_5.11_Tools_and_Versions) определяем использовавшиеся версии средств. Более свежие версии ставим только если от этого действительно ожидается полезный эффект.
Основные правила при определении компонентов в каталоги: не увлекаемся длинными именами, не используем пробелы и кириллицу.
Стоит так же заметить, что никаких переменных окружения вручную не ставил для сборки Qt 5.11.1 + MSVC2017.
Самые свежие средства компиляции Visual Studio 2017 наиболее быстрые.

1. Предварительно загружаем дистрибутивы и средства.
1.1 Основные пакеты:
Build Tools for Visual Studio 2017 (текущая версия v15.7.6)
Скачать онлайн установщик vs_BuildTools.exe (https://visualstudio.microsoft.com/downloads/) (ищем внизу).
Можно предварительно скачать весь дистрибутив (13,1GB), запустив cmd.exe и дав команду:
C:\vs_BuildTools.exe --layout D:\VSBT2017 --lang en-US ru-RU

При необходимости, можно подобное сделать для Visual Studio 2017 Community (38.1GB), используя vs_Community.exe (https://visualstudio.microsoft.com/downloads/):
C:\vs_Community.exe --layout D:\MSVC2017 --lang en-US ru-RU

Windows 10 SDK (Windows Kits текущая версия v10.0.17134.12)
Скачать онлайн установщик winsdksetup.exe (https://developer.microsoft.com/ru-ru/windows/downloads/windows-10-sdk).
Можно предварительно скачать дистрибутив, запустив установщик и отметив все (794MB) или только debugging tools for windows (206MB). Отмечаем, что хотим только скачать.

Qt 5.11.1 (текущая версия)
Онлайн установщик qt-unified-windows-x86-3.0.5-online.exe (https://www.qt.io/download)
Офлайн установщик qt-opensource-windows-x86-5.11.1.exe (http://download.qt.io/official_releases/qt/) (2.39GB)

1.2 Дополнительные инструменты:
jom_1_1_2.zip (http://download.qt.io/official_releases/jom/) (не обязательно, но эта утилита многопроцессорной компиляции, весьма эффективна)
pthreads-w32-2-9-1-release.zip (https://sourceforge.net/projects/pthreads4w/files/)
sqlite-dll-win32-x86-3240000.zip (https://www.sqlite.org/download.html)
LLVM-6.0.0-win32.exe (http://releases.llvm.org/download.html) (начиная с QT 5.11 требуется для сборки QDoc, хотя собирать документацию Qt нам не придется)
python-2.7.15.msi (https://www.python.org/downloads/)
rubyinstaller-devkit-2.4.4-2-x86.exe (https://rubyinstaller.org/downloads/)
DXSDK_Jun10.exe (http://www.microsoft.com/en-us/download/details.aspx?id=6812) (при установке ставим галочку: No, I would not like to participate)
strawberry-perl-5.26.2.1-32bit.msi (http://strawberryperl.com/releases.html)
VulkanSDK-1.0.51.0-Installer.exe  (https://vulkan.lunarg.com/sdk/home#windows)(если видеодрайвер уже установил Vulkan, то видимо стоит удалить)
openssl-1.0.2o.tar (https://www.openssl.org/source/) (исходники для сборки)
icu-53.1-vs2013.7z (https://www.npcglib.org/~stathis/blog/precompiled-icu-past/) (пред-компилированная версия, насколько известно именно эта версия использовалась при сборке Qt5.11.1)

Если желаете самостоятельно собрать ICU, понадобятся:
ICU (http://download.icu-project.org/files/icu4c/) (исходники для сборки)
Cygwin (http://www.cygwin.com/install.html) (онлайн установщик setup-x86.exe).

2. Установка средств компиляции от Visual Studio 2017.
2.1 Установка BuildTools:
Запускаем онлайн установщик vs_BuildTools.exe (vs_Community.exe) либо офлайн vs_setap.exe.
Отмечаем по минимуму (галочку русской локали лучше снимите, если боитесь проблем в Qt консоли):
(https://c.radikal.ru/c20/1808/37/d38d5e6f2baet.jpg) (https://c.radikal.ru/c20/1808/37/d38d5e6f2bae.png) (https://d.radikal.ru/d28/1808/2d/81a22ef4c4f1t.jpg) (https://d.radikal.ru/d28/1808/2d/81a22ef4c4f1.png)
Второй скриншот на случай если понадобились комплекты MSVC2015.
Понадобившиеся компоненты, всегда можно будет доустановить.

2.2 Устанавливаем Пакет Windows 10 SDK.
Запустить winsdksetup.exe, отметить и установить:
(https://b.radikal.ru/b31/1808/7d/b4e72c9fe0aft.jpg) (https://b.radikal.ru/b31/1808/7d/b4e72c9fe0af.png)
Если уже скачали, заходим в папку загрузки и устанавливаем:
X64 Debuggers And Tools-x64_en-us
X86 Debuggers And Tools-x86_en-us

3. Сборка дополнительного инструментария.
3.1 Собираем в каталоге C:\DEV:
Эти компоненты просто распаковываем в каталоги:
C:\DEV\jom_1_1_2
C:\DEV\pthreads
C:\DEV\sqlite

При установке этих компонентов не забываем проверить галочку - Прописаться в путях:
C:\DEV\LLVM
C:\DEV\Python27
C:\DEV\Ruby24

Эти компоненты сами пропишут свои переменные окружения:
C:\DEV\DXSDK
C:\DEV\Strawberry
C:\DEV\VulkanSDK

3.2 Сборка OpenSSL:
Распаковываем:
C:\DEV\openssl-1.0.2o
Запускаем консоль MSVC2017, создав и запустив командный файл msbt32.cmd с содержимым:
Код:
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
:: Если использовали vs_Community.exe (и т.д.), строка выглядит так:
:: CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
cmd /k
Последовательно вводим или копипастим команды:
cd C:\DEV\openssl-1.0.2o
perl Configure VC-WIN32 no-asm --prefix=C:\DEV\openssl-1.0.2o\dist no-idea no-mdc2 no-rc5
ms\do_ms
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install


3.3 Сборка ICU:
Можно, просто, разархивировать содержимое каталога (внимательно от куда и куда) icu-53.1-vs2013 архива icu-53.1-vs2013.7z в каталог:
C:\DEV\icu\dist
И сразу перейти к разделу 4. Сборка комплекта Qt - MSVC2017 32Bit для Qt5.11.1.

ICU можно собрать самостоятельно, но icu-53.1 собирается кривовато средствами msvc2017, с ошибками, хотя вроде работает.
Для сборки используется Cygwin.
Запускаем онлайн установщик setup-x86.exe.
Устанавливаем в каталог:
C:\DEV\cygwin
Необходимы только три пакета:
Devel -> make: The GNU version of the 'make' utility
Utils -> dos2unix: Line Break Convesion
Devel -> binutils: GNU assembler, linker, and similar utilities
Делаем это следующим образом, в строке поиска последовательно прописываем: make, dos2unix, binutils и отмечаем необходимые компоненты:
(https://b.radikal.ru/b12/1808/1c/f17b4f8a5c29t.jpg) (https://b.radikal.ru/b12/1808/1c/f17b4f8a5c29.png) (https://c.radikal.ru/c14/1808/a8/0b521abd2c60t.jpg) (https://c.radikal.ru/c14/1808/a8/0b521abd2c60.png) (https://d.radikal.ru/d30/1808/7d/14e3a2205b52t.jpg) (https://d.radikal.ru/d30/1808/7d/14e3a2205b52.png)
После установки появится папка с этими компонентами, с которой, если понадобится, можно будет переустановить Cygwin в режиме офлайн.

Берем более свежую версию icu4c-62_1-src.zip и распаковываем:
C:\DEV\icu
Запускаем msbt32.cmd и последовательно вводим или копипастим команды:
set PATH=%PATH%;C:\DEV\cygwin\bin
cd C:\DEV\icu\source
dos2unix *
dos2unix -f configure
dos2unix *
(даем эту команду если при конфигурировании выскакивает ошибка '\r': command not found)
bash runConfigureICU Cygwin/MSVC -prefix=/cygdrive/c/DEV/icu/dist
make
make install

4. Сборка комплекта Qt - MSVC2017 32Bit для Qt 5.11.1.
4.1 Для начала установим Qt 5.11.1 с штатными комплектами MSVC2017 64bit и MinGW 32bit:
Запускаем либо онлайн установщик qt-unified-windows-x86-3.0.5-online.exe, либо офлайн qt-opensource-windows-x86-5.11.1.exe и ставим в папку по умолчанию C:\Qt\Qt5.11.1 следующие компоненты:
(https://d.radikal.ru/d02/1808/a7/84dd874c4a1et.jpg) (https://d.radikal.ru/d02/1808/a7/84dd874c4a1e.png)
Заметьте, что отмечаем Sources которые понадобятся, что бы скомпилировать свой вариант MSVC2017 32Bit.
После установки в настройках Qt Creator указываем правильный компилятор для MSVC2017 64bit:
(https://c.radikal.ru/c36/1808/ed/a7dd088537c0t.jpg) (https://c.radikal.ru/c36/1808/ed/a7dd088537c0.png)
Исходники (Sources) окажутся в каталоге C:\Qt\Qt5.11.1\5.11.1\Src.

Копируем в каталог C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\bin файлы библиотек (внимательно, не перепутав с дебажными версиями):
C:\DEV\icu\dist\bin\icudt53.dll
C:\DEV\icu\dist\bin\icuin53.dll
C:\DEV\icu\dist\bin\icuuc53.dll
C:\DEV\openssl-1.0.2o\dist\bin\libeay32.dll
C:\DEV\openssl-1.0.2o\dist\bin\ssleay32.dll
C:\DEV\sqlite\sqlite3.dll

В каталог C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\lib файлы:
C:\DEV\icu\dist\lib\icudt.lib
C:\DEV\icu\dist\lib\icuin.lib
C:\DEV\icu\dist\lib\icuuc.lib
C:\DEV\openssl-1.0.2o\dist\lib\libeay32.lib
C:\DEV\openssl-1.0.2o\dist\lib\ssleay32.lib

В каталог C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\include копируем папки с файлами заголовков ICU и OpenSSL:
C:\DEV\icu\dist\include\layout
C:\DEV\icu\dist\include\unicode
C:\DEV\openssl-1.0.2o\dist\include\openssl

Можно сохранить резерв каталога Src на случай дальнейших экспериментов.

4.2 Сборка комплекта Qt - MSVC2017 32Bit в каталоге C:\msvc2017_32:
При компиляции отключаем антивирус. И здесь дело не в ошибках, а в скорости компиляции.
В каталоге C:\Qt\Qt5.11.1\5.11.1 создаем командный файл qt5vars.cmd с содержимым:
Код:
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
:: Если использовали vs_Community.exe (и т.д.), строка выглядит так:
:: CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community]\VC\Auxiliary\Build\vcvarsall.bat" x86

SET _ROOT=C:\Qt\Qt5.11.1\5.11.1\Src
SET LLVM_INSTALL_DIR=C:\DEV\LLVM
SET QT_INSTALL=C:\msvc2017_32

SET PATH=C:\DEV\jom_1_1_2;%PATH%
SET PATH=C:\DEV\sqlite;%PATH%
SET PATH=C:\DEV\pthreads\Pre-built.2\dll\x86;%PATH%
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%

SET _ROOT=
cd C:\Qt\Qt5.11.1\5.11.1\Src
cmd /k

Запускаем qt5vars.cmd и вводим или просто копипастим команду для кофигурирования:
configure -prefix %QT_INSTALL% -platform win32-msvc2017 -debug-and-release -confirm-license -opensource -webengine-proprietary-codecs -sse2 -qt-sqlite -plugin-sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs -make tools -openssl -icu -I "C:\DEV\openssl-1.0.2o\dist\include" -L "C:\DEV\openssl-1.0.2o\dist\lib" -I "C:\DEV\icu\dist\include" -L "C:\DEV\icu\dist\lib" -opengl dynamic

Проверьте Configure summary и если ничего не напутали, эти компоненты должны иметь статус yes:
ICU .................................... yes
OpenSSL ................................ yes
ANGLE ................................ yes
Dynamic OpenGL ....................... yes
Vulkan ................................. yes
Proprietary Codecs ..................... yes

Теперь можно компилировать:
jom (этот этап долгий, на i5-2430M - 11ч. 53м.)
jom install (минут 12)

Если jom не ставили:
set cl=/MP (включаем многопоточность сборки, либо ранее в configure можно было прописать ключ -mp, оба варианта действуют одинаково)
nmake (на i5-2430M - 13ч. 51м. (15ч. 31м. без set cl=/MP))
nmake install

После сборки копируем в каталог C:\msvc2017_32\bin файлы:
C:\DEV\icu\dist\lib\icudt53.dll
C:\DEV\icu\dist\lib\icuin53.dll
C:\DEV\icu\dist\lib\icuuc53.dll
C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\bin\qt.conf

После компиляции в настройках Qt Creator создаем новый комплект (имя указываем любое свое):
(https://b.radikal.ru/b06/1808/7e/59bc2d145318t.jpg) (https://b.radikal.ru/b06/1808/7e/59bc2d145318.png)
И указываем правильный компилятор для MSVC2017 32bit:
(https://c.radikal.ru/c02/1808/f8/0b90a6f261b7t.jpg) (https://c.radikal.ru/c02/1808/f8/0b90a6f261b7.png)

Комплект готов.
Если необходимо собрать новый комлект то либо копируем резервную копию Src, либо перед конфигурированием запускаем команду:
jom distclean (процесс довольно затяжной, к тому же у меня он закончился фатальной ошибкой, правда командой nmake distclean).

Учтите, что после сборки, папка Src разрастается весьма сильно 66GB. Ее надо почистить, возможно ее можно просто удалить.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Август 09, 2018, 06:17
Здесь будут дополнительные пометки:
1. Как уже отмечал самые свежие средства Visual Studio 2017 наиболее быстрые. Причем даже в пределах одной Studio. Например, свежий компилятор от msvc2017v15.7 сработал быстрее чем компилятор msvc2017v15.6, процентов на 10. Что собственно не мало. Это сэкономило час для моей системы (Windows 7-64, Ноутбук i5-2430M/12Gb/SVGA Intel HD Graphics 3000 + GF GT555M).
Включение всех процессоров в самой системе Windows 7-64, никакого эффекта не произвело.
А вот работа антивируса замедлит компиляцию, полагаю здесь речь пойдет даже не о процентах. Так что отключаем. Обычно я ставлю AVGIS (ныне тот же AVAST, на сколько известно). Поговаривают, что его отключением не спасешся. Ставил на систему без антивируса. И вообще все дистрибутивы загружал на другом компьютере.
Время компиляции с помощью Build Tools for Visual Studio 2017v15.7:
jom - 11.53
nmake c mp (многопоточная компиляция) - 13.51
nmake - 15.31

Как видим jom рулит. Его стоит настроить в Qt Creator.
Впрочем, если делали все по инструкции, то jom должен быть уже настроен для MSVC.
Однако, есть мнение, что настроить стоит и для MinGW, но пока не уточнял, хотя рекомендации выполнял и Qt не ругался. Однако скорость не тестировал. Делать это необходимо на достаточно серьезных проектах, что бы заметить разницу.

При использовании nmake многопоточного режима в qt5vars.cmd меняем строчку SET PATH=C:\DEV\jom_1_1_2;%PATH% на SET cl=/MP:
Код:
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
:: Если использовали vs_Community.exe (и т.д.), строка выглядит так:
:: CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community]\VC\Auxiliary\Build\vcvarsall.bat" x86

SET _ROOT=C:\Qt\Qt5.11.1\5.11.1\Src
SET LLVM_INSTALL_DIR=C:\DEV\LLVM
SET QT_INSTALL=C:\msvc2017_32

:: Для многопоточного режима:
SET cl=/MP

SET PATH=C:\DEV\sqlite;%PATH%
SET PATH=C:\DEV\pthreads\Pre-built.2\dll\x86;%PATH%
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%

SET _ROOT=
cd C:\Qt\Qt5.11.1\5.11.1\Src
cmd /k

Либо в строке конфигурации добавляем параметр -mp:
configure -prefix %QT_INSTALL% -platform win32-msvc2017 -mp -debug-and-release -confirm-license -opensource -webengine-proprietary-codecs -sse2 -qt-sqlite -plugin-sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs -make tools -openssl -icu -I "C:\DEV\openssl-1.0.2o\dist\include" -L "C:\DEV\openssl-1.0.2o\dist\lib" -I "C:\DEV\icu\dist\include" -L "C:\DEV\icu\dist\lib" -opengl dynamic

КСТАТИ:
-opengl dynamic - без этого Qt webengine не соберется.
-webengine-proprietary-codecs - это что бы работал например mp3 формат.

И как отмечалось ранее Qt webengine собирается без проблем в Qt 5.9.6, но учтите, что ключ -webengine-proprietary-codecs там не работает, если вас все таки смущает кривая сборка Qt webengine в Qt 5.11.1 (это касается и Qt 5.10).

2. Апгрейд на более новый и многоядерный процессор даст существенный прирост и комфорт. Однако не менее приятнее CCD в качестве системного диска, который так же даст прирост в производительности и повышения комфорта.

3. Если скачали весь пакет Build Tools for Visual Studio 2017 (13,1GB), используя команду:
C:\vs_BuildTools.exe --layout D:\VSBT2017 --lang en-US ru-RU
Реально он не нужен в полном объеме и в последствии, при желании, его можно сократить в несколько раз, убрав лишнее.
Так же можно не указывать ru-RU, если забудете убрать галочку при установке BuildTools, это грозит проблемами в Qt консоли.

А вот скачать нормально Visual Studio 2017 Community (38.1GB) пытался несколько раз:
C:\vs_Community.exe --layout D:\MSVC2017 --lang en-US ru-RU
Удалось только однажды. В остальных случаях все время выдается пара ошибок, хотя все вроде ставится без проблем. Может вы будете более удачливы.

4. Увеличение числа комплектов тормозит систему. И насколько знаю средства MSVC2017 совместимы сверху вниз. Поэтому, вероятно, разумно ограничить их число до минимума:
MSVC2017 64bit
MSVC2017 32bit
MinGW 32bit
При необходимости установки комплектов MSVC2015 не забываем поставить дополнительно пару галочек при установке BuildTools:
(https://d.radikal.ru/d28/1808/2d/81a22ef4c4f1t.jpg) (https://d.radikal.ru/d28/1808/2d/81a22ef4c4f1.png)
И соответственно при установке Qt 5.11.1:
(https://d.radikal.ru/d40/1808/ba/b073b8438c09t.jpg) (https://d.radikal.ru/d40/1808/ba/b073b8438c09.png)

И вероятно для создания андроид приложений стоит поставить и эту пару комплектов:
(https://d.radikal.ru/d13/1808/c7/69c5ee3ee44bt.jpg) (https://d.radikal.ru/d13/1808/c7/69c5ee3ee44b.png)

5. Вероятно было бы более аккуратно определить каталог DEV здесь:
C:\Qt\DEV
Но, при деинсталляции Qt 5.11.1, рускуем все потерять.
То же касается и сборки нового комплекта в стандартном каталоге:
C:\Qt\Qt5.11.1\5.11.1\msvc2017_32
К тому же, при компиляции с помощью jom, в конце выскочили какие то неясные вопросики :). Возможно пути длинноваты.

6. Ну а это выскакивает при компиляции в дебаг, примеров с Qt webengine:
(https://d.radikal.ru/d24/1808/2a/a3f849fc9c5bt.jpg) (https://d.radikal.ru/d24/1808/2a/a3f849fc9c5b.png)
И если приглядеться, что за странные пути f:\dd\vctools\src\srartup\... Откуда QT их берет, в этом я не разбираюсь...

7. Начиная с QT 5.11 для сборки QDoc требуется LLVM. В инструкции все это предусматривается и в библиотеке (C:\msvc2017_32\bin) присутствует qdoc.exe, который ранее не удавалось получить.
Однако, так и не смог правильно собрать саму документацию. Она не хочет собираться в указанной папке, хотя пользовался официальной инструкцией.
Но нам и не надо ее собирать, поскольку, она устанавливается при инсталляции Qt 5.11.1.
Но вот освобождает ли это разработчика от установки LLVM, если ему понадобится собрать свою документацию, мне не известно.
Полагаю начинающему этот компонент вовсе не нужен.

8. Configure summary для предложенного выше комплекта (использовал бы спойлер, но что то не нашел).
Если не напутали с пропиской расположения каталогов и настройками конфигурации, то выделенные элементы должны быть иметь статус yes:

Build type: win32-msvc (i386, CPU features: sse sse2)
Configuration: sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx
512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples
 f16c largefile precompile_header rdrnd shani x86SimdAlways shared debug_and_rel
ease release debug build_all c++11 concurrent dbus no-pkg-config release_tools s
tl
Build options:
  Mode ................................... debug and release; default link: debu
g; optimized tools
  Optimize release build for size ........ no
  Building shared libraries .............. yes
  Using C++ standard ..................... C++11
  Using gold linker ...................... no
  Using precompiled headers .............. yes
  Using LTCG ............................. no
  Target compiler supports:
    SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
    AVX .................................. AVX AVX2
    AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI
    Other x86 ............................ AES F16C RDRAND SHA
  Build parts ............................ libs tools
  App store compliance ................... no
Qt modules and options:
  Qt Concurrent .......................... yes
  Qt D-Bus ............................... yes
  Qt D-Bus directly linked to libdbus .... no
  Qt Gui ................................. yes
  Qt Network ............................. yes
  Qt Sql ................................. yes
  Qt Testlib ............................. yes
  Qt Widgets ............................. yes
  Qt Xml ................................. yes
Support enabled for:
  Using pkg-config ....................... no
  udev ................................... no
  Using system zlib ...................... no
Qt Core:
  DoubleConversion ....................... yes
    Using system DoubleConversion ........ no
  GLib ................................... no
  iconv .................................. no
  ICU .................................... yes
  Tracing backend ........................ <none>
  Logging backends:
    journald ............................. no
    syslog ............................... no
    slog2 ................................ no
  Using system PCRE2 ..................... no
Qt Network:
  getifaddrs() ........................... no
  IPv6 ifname ............................ no
  libproxy ............................... no
  OpenSSL ................................ yes
    Qt directly linked to OpenSSL ........ no
  OpenSSL 1.1 ............................ no
  SCTP ................................... no
  Use system proxies ..................... yes
Qt Gui:
  Accessibility .......................... yes
  FreeType ............................... yes
    Using system FreeType ................ no
  HarfBuzz ............................... yes
    Using system HarfBuzz ................ no
  Fontconfig ............................. no
  Image formats:
    GIF .................................. yes
    ICO .................................. yes
    JPEG ................................. yes
      Using system libjpeg ............... no
    PNG .................................. yes
      Using system libpng ................ no
  EGL .................................... yes
  OpenVG ................................. no
  OpenGL:
    ANGLE ................................ yes
    Combined ANGLE Library ............... no
    Desktop OpenGL ....................... no
    Dynamic OpenGL ....................... yes
    OpenGL ES 2.0 ........................ no
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    OpenGL ES 3.2 ........................ no
  Vulkan ................................. yes
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. no
  libinput ............................... no
  INTEGRITY HID .......................... no
  mtdev .................................. no
  tslib .................................. no
  xkbcommon-evdev ........................ no
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. no
  LinuxFB ................................ no
  VNC .................................... no
  Mir client ............................. no
  Windows:
    Direct 2D ............................ yes
    DirectWrite .......................... yes
    DirectWrite 2 ........................ yes
Qt Widgets:
  GTK+ ................................... no
  Styles ................................. Fusion Windows WindowsVista
Qt PrintSupport:
  CUPS ................................... no
Qt Sql:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. no
  OCI (Oracle) ........................... no
  ODBC ................................... yes
  PostgreSQL ............................. no
  SQLite2 ................................ no
  SQLite ................................. yes
    Using system provided SQLite ......... no
  TDS (Sybase) ........................... no
Qt Testlib:
  Tester for item models ................. yes
Qt SerialBus:
  Socket CAN ............................. no
  Socket CAN FD .......................... no
QtXmlPatterns:
  XML schema support ..................... yes
Qt QML:
  QML network support .................... yes
  QML debugging and profiling support .... yes
  QML delegate model ..................... yes
Qt Quick:
  Direct3D 12 ............................ yes
  AnimatedImage item ..................... yes
  Canvas item ............................ yes
  Support for Qt Quick Designer .......... yes
  Flipable item .......................... yes
  GridView item .......................... yes
  ListView item .......................... yes
  Path support ........................... yes
  PathView item .......................... yes
  Positioner items ....................... yes
  Repeater item .......................... yes
  ShaderEffect item ...................... yes
  Sprite item ............................ yes
Qt Gamepad:
  SDL2 ................................... no
Qt 3D:
  Assimp ................................. yes
  System Assimp .......................... no
  Output Qt3D Job traces ................. no
  Output Qt3D GL traces .................. no
  Use SSE2 instructions .................. no
  Use AVX2 instructions .................. no
  Aspects:
    Render aspect ........................ yes
    Input aspect ......................... yes
    Logic aspect ......................... yes
    Animation aspect ..................... yes
    Extras aspect ........................ yes
Qt 3D Renderers:
  OpenGL Renderer ........................ yes
Qt 3D GeometryLoaders:
  Autodesk FBX ........................... no
Qt Wayland Client ........................ no
Qt Wayland Compositor .................... no
Qt Bluetooth:
  BlueZ .................................. no
  BlueZ Low Energy ....................... no
  Linux Crypto API ....................... no
  WinRT Bluetooth API (desktop & UWP) .... yes
Qt Sensors:
  sensorfw ............................... no
Qt Quick Controls 2:
  Styles ................................. Default Fusion Imagine Material Unive
rsal
Qt Quick Templates 2:
  Hover support .......................... yes
  Multi-touch support .................... yes
Qt Positioning:
  Gypsy GPS Daemon ....................... no
  WinRT Geolocation API .................. no
Qt Location:
  Qt.labs.location experimental QML plugin . yes
  Geoservice plugins:
    OpenStreetMap ........................ yes
    HERE ................................. yes
    Esri ................................. yes
    Mapbox ............................... yes
    MapboxGL ............................. no
    Itemsoverlay ......................... yes
Qt Multimedia:
  ALSA ................................... no
  GStreamer 1.0 .......................... no
  GStreamer 0.10 ......................... no
  Video for Linux ........................ no
  OpenAL ................................. no
  PulseAudio ............................. no
  Resource Policy (libresourceqt5) ....... no
  Windows Audio Services ................. yes
  DirectShow ............................. yes
  Windows Media Foundation ............... yes
  Media player backend ................... DirectShow
Qt WebEngine:
  Embedded build ......................... no
  Pepper Plugins ......................... yes
  Printing and PDF ....................... yes
  Proprietary Codecs ..................... yes
  Spellchecker ........................... yes
  Native Spellchecker .................... no
  WebRTC ................................. yes
  Use System Ninja ....................... no
  Geolocation ............................ yes
  Use v8 snapshot ........................ yes


Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Август 11, 2018, 17:19
Взял ресурсы Qt 5.9.6 и заменил WebEngine от Qt 5.11.1 (согласно документации совместимо). Дебаг режим не работает так же. Релиз работает нормально, т.е. примеры видят и локальный контент. Qt 5.11.1 в релиз режиме примеры не видят локальный контент, что со самосборкой, что со сборкой из стандартной комплектации.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Август 19, 2018, 06:26
Попробовал скомпилировать Qt свежей версией Build Tools for Visual Studio 2017v15.8.1.
Однако при конфигурировании выдает:
...NMAKE : fatal error U1077: '"C:\...\MSVC\14.15.26726\bin\HostX86\x86\cl.exe"' : return code '0x2'


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Октябрь 02, 2018, 13:37
Скомпилировал на досуге Qt 5.11.2.
Ситуация с WebEngine на данный момент такова:
Поправили на половину. Теперь Релиз компиляция исправно работает, примеры с WebEngine полностью работоспособны и работают как внешние так и локальные ссылки (ранее не работали локальные ссылки).
Дебаг режим по прежнему не работает.

Однако заметил, что недавно на GitHub был исправлен баг QTBUG-69281, на сколько понимаю, это он и есть.
Простой подменой файлов официального дистрибутива файлами с GitHub мне не удалось сделать сборку, как в прошлый раз, что бы проверить (не скомпилировался WebEngine).
Ближайший бета релиз Qt 5.12 видимо будет работать как надо, если снова что нибудь не поломают.


Название: Re: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки
Отправлено: Serega от Октябрь 09, 2018, 05:28
Наконец сработала должным образоим компиляция WebEngine в пакете: qt-everywhere-src-5.12.0-beta1.
Однако согласно официальной инструкции:
Цитировать
Qt WebEngine can only be built on 64-bit Windows, with a x64-bit toolchain. For building Qt WebEngine for x86 applications, you need to configure and compile Qt with the Visual Studio 2017 x64 to x86 cross-compile toolchain. This toolchain can be set up on the command line by running vcvarsall.bat amd64_x86.
Запуск командной строки Visual Studio выглядит так (в командном файле qt5vars.cmd):
Код:
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64_x86
Пакет несколько потяжелел и компиляция в моей системе с помощью Build Tools for Visual Studio 2017v15.7.6 заняла 13 часов 2 минуты с использованием jom.

Работоспособность проверял с новым qt-opensource-windows-x86-5.11.2.exe.
Все инструкции идентичны ранее изложенным, за исключением указанной выше строчки.
А так же настройки Qt Creator (в новом комплетке v4.7.1). Там должен быть указах 64х-битный компилятор и дебагер. Здесь я не совсем понял, возможно что то еще надо подправить или он автоматом будет компилировать 32х-битные версии приложений. Во всяком случае не увидел варианта amd64_x86.

Т.е. на сегодня можно собрать более мене полноценный комплект, без лишнего, со всеми работоспособными примерами, если конечно снова что либо не поломали. Не проверял, но ране все работали:
msvc2017_64 + WebEngine
msvc2017_32 + WebEngine
MinGW
(прикрутить бы QWebKit, на WebEngine вроде как никто не надеится, хотя работает же клон (родитель) в линуксе)