Russian Qt Forum
Ноябрь 22, 2024, 16:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Сборка Qt 5 со всем новым и необходимым для изучения и тренировки  (Прочитано 44831 раз)
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« : Июль 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?
И что еще следует полезного установить и пригодится для полного счастья, что бы можно было уже ни о чем не беспокоиться, тренироваться и пытаться, что-то творить, в хорошем смысле этого слова?

« Последнее редактирование: Июль 01, 2018, 17:14 от Serega » Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #1 : Июль 01, 2018, 14:35 »

А чем не устраивают готовые сборки из Qt Online Installer? Или цель именно самому собрать Qt?
Записан

Пока сам не сделаешь...
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« Ответ #2 : Июль 01, 2018, 14:43 »

Можно конечно воспользоваться и готовыми сборками, но как писал выше, все таки есть желание чуть больше разобраться с этой "кухней" и постепенно научиться собирать сторонние модули, если понадобятся. Кроме того иногда ковыряю открытый совместный проект, который требует сборки Qt.
« Последнее редактирование: Июль 01, 2018, 14:45 от Serega » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июль 01, 2018, 15:10 »

кажется, не собрался qttools (или где там qdoc живет). Не знаю, должен ли он собираться по умолчанию, но можно просто сделать туда cd, qmake && make && make install
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Июль 01, 2018, 15:50 »

Можно конечно воспользоваться и готовыми сборками, но как писал выше, все таки есть желание чуть больше разобраться с этой "кухней" и постепенно научиться собирать сторонние модули, если понадобятся. Кроме того иногда ковыряю открытый совместный проект, который требует сборки Qt.
Тоже всегда под винду собирал сам. Хотя, я гентушник, это неизлечимо. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« Ответ #5 : Июль 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
Итак, снимаем галочку с русской локали и ставим следующие компоненты:

Если сам 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 следующие компоненты:

Заметьте, что отмечаем 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'
« Последнее редактирование: Июль 15, 2018, 14:06 от Serega » Записан
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« Ответ #6 : Июль 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? Или это абсолютная проблема для всех?
Мой перфекционизм меня погубит, но неужели больше никто не экспермиентировал?
« Последнее редактирование: Июль 22, 2018, 11:31 от Serega » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Июль 22, 2018, 12:29 »

абсолютным новичкам надо ставить готовые комплекты и не мучаться, а не сидеть и часами компилировать библиотеки Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #8 : Июль 22, 2018, 12:44 »

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

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

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

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

Пока сам не сделаешь...
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« Ответ #9 : Июль 22, 2018, 12:53 »

абсолютным новичкам надо ставить готовые комплекты и не мучиться, а не сидеть и часами компилировать библиотеки Улыбающийся
Однако я не абсолютный новичок. Но поздновато взялся за программирование и делаю это набегами. Каюсь, это мой третий набег. И участвую в довольно известном совместном проекте. Но мне надоело быть на побегушках, поскольку взялся за программирование поздно, мои работы отбираются как конфеты у ребенка, приводят их в порядок и подписываются свои именем. Мне уже сложно выработать культуру кода, по той же причине - поздновато взялся за это дело. Но я хочу попробовать создать с нуля свой проект в этот раз.

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

Кстати, помню с вашей помощью и других когда то упорно тут отрабатывал пару кодов. И это стало довольно популярно или модно не только на форуме Улыбающийся. Мы не скрывали исходники.
« Последнее редактирование: Июль 22, 2018, 15:21 от Serega » Записан
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« Ответ #10 : Июль 22, 2018, 13:04 »

Пробовали разобраться в причинах вылета? Может в системе не все библиотеки есть именно для Debug сборки или они не подходящей версии? Как минимум Dependency Walker`ом посмотреть.
Пробовал на сколько понимаю. Зашел в каталог сборки Debug и скопировал все библиотенки которые были запрошены + на всякий случай и ucrtbased.dll. Библиотеки программа перестла спрашивать, но при этом вообще не проявляет признаков жизни.
Опять же методом проб и ошибок хотел подсовывать, переименовывая библиотеки с релиза... До этого дело не дошло.

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

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

« Последнее редактирование: Июль 22, 2018, 13:25 от Serega » Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #11 : Июль 22, 2018, 13:24 »

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

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

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

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

Пока сам не сделаешь...
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« Ответ #12 : Июль 22, 2018, 13:36 »

Спасибо за советы. Буду пробовать разбираться с версиями.

Или в конце концов просто подтяну 32х битную сборку от 15й версии VS с инсталлятора Qt5.10. Там работает Qt webengine.
Или дебажить, в случае необходимости, с msvc64.
« Последнее редактирование: Июль 22, 2018, 14:43 от Serega » Записан
Serega
Самовар
**
Offline Offline

Сообщений: 127


Просмотр профиля
« Ответ #13 : Июль 22, 2018, 16:43 »

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

И все что может меня интуитивно смущать это 140, а не 141. С другой стороны картина ниже таже.

Такова картина от работающей официальной 64х битной сборки:

Конечно разницу вижу, но только визуально Улыбающийся.

Вроде нашел где искать версии библиотек, только как то не особо легче. Вот, что то  интуитивно подозрительное в дебажной версии (присутствие обоих версий библиотек):

« Последнее редактирование: Июль 22, 2018, 17:59 от Serega » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Июль 23, 2018, 07:06 »

Любовь к процессу "сборки" - извращение. И умение "собирать" пусть полезное, а иногда и необходимое - но не имеет к программированию никакого отношения.
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.272 секунд. Запросов: 23.