Установка Qt из исходных текстов на Windows 10 64 bit

Харе Кришна, всем!
Примите, пожалуйста, мои смиренные поклоны!
Слава Шриле Прабхупаде!

Попробуем собрать Qt и QtCreator из исходных текстов! Для чего из исходных текстов? Ведь можно же просто скачать готовый установщик Qt и установить уже скомпилированные модули, готовые для работы! Да! Всё это правда! Но правда и то, что в этом случае Вы не сможете отредактировать сами исходные тексты Qt! А иногда это хочется! И иногда надо!

Следуем по пути, предначертанном на сайте Qt — https://wiki.qt.io/Building_Qt_6_from_Git .
Установил Far Manager, 7-zip — полезные штуки!

1. Устанавливаем PostgreSQL 16 64 bit, качаем отсюда — https://www.postgresql.org/download/windows/ . Путь к  PostgreSQL прописывать в переменной Path не надо, его можно прописать в параметрах CMake сборки Qt. Но перед запуском уже готовых программ, которые скомпилированы с помощью Qt нужно будет срочно добавлять этот путь к системной переменной Path примерно такой командой:
set Path=%Path%;C:\Prg\PostgreSQL\16\bin

2. Качаем и устанавливаем Git отсюда — https://git-scm.com/download/win .
Я разпаковываю в папку C:\Prg\PortableGit . Стараюсь избегать ненужного длинного названия Program Files, с которым не всегда удобно работать. Досталась мне версия PortableGit-2.44.0-64-bit.7z.exe .
В системной переменной Path должно быть следующее: C:\Prg\PortableGit\cmd

3. Устанавливаем CMake, качаем отсюда https://cmake.org/download/ , досталась мне версия cmake-3.28.3-windows-x86_64.zip .
В системной переменной Path должно быть следующее: C:\Prg\cmake-3.28.3-windows-x86_64\bin

4. Устанавливаем Ninja с папку C:\Prg\Ninja . Version 1.11.1
https://github.com/ninja-build/ninja/releases
В системной переменной Path прописываем путь C:\Prg\Ninja .

5. Устанавливаем VulkanSDK
https://vulkan.lunarg.com/sdk/home#windows
Мне досталась версия VulkanSDK-1.3.275.0-Installer.exe . Ни одну дополнительную галочку не выбирал. Установил по минимуму.
В системной переменной Path должно быть следующее: C:\Prg\VulkanSDK\1.3.275.0\Bin

6. Устанавливаем Python. Попробуем скачать Windows installer (64-bit)
Stable Releases на странице https://www.python.org/downloads/windows/ .
На данный момент нужно выбрать версию Питона 3.11 python-3.11.8-amd64.exe . Хотя существует более новая версия 3.12, но под неё еще не исправлены исходные тексты Qt. Выбор более ранних версий, тоже приводил к ошибкам компиляции, и некоторые части библиотеки Qt не устанавливались. Оставил все галочки установки по умолчанию. В системную переменную PATH добавил вручную путь C:\Prg\Python\Python311
Установил вручную в Реестре Windows флаг HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled  в значение 1. Питон вроде бы предлагает это сделать при установке. Если забыли сразу включить, то ничего страшного — никогда не поздно. Программа для работы с реестром Виндовс — regedit.exe .

7. Устанавливаем Strawberry Perl. Качаем отсюда — https://strawberryperl.com/releases.html
Мне досталась портативная версия strawberry-perl-5.38.0.1-64bit-portable.zip .
Распаковал в папку C:\Prg\strawberry
В системную переменную Path добавил следующее: C:\Prg\strawberry\perl\bin

8. Устанавливаем Visual Studio 2022. Качаем отсюда — https://visualstudio.microsoft.com/ru/vs/whatsnew/
Установил поддержку классических приложений C++, мобильных приложений для C++ и два языковых пакета — английский и русский!

9. Установил WDK Для этого скачал wdksetup.exe . Найти можно на странице https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk#download-icon-for-wdk-step-3-install-wdk . После этого будет доступен отладчик cdb.exe . Он понадобится для работы отладки кода в QtCreator. Находится отладчик тут — «C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe» . Но QtCreator cfv его найдет!

10. Устанавливаем в Питоне html5lib, для этого переходим в папку C:\Prg\Python\Python311\Scripts и запускаем команду:
pip3 install html5lib

11. Устанавливаем Win Flex Bizon, качаем отсюда — https://sourceforge.net/projects/winflexbison/
В системную переменную Path добавил следующее: C:\Prg\Win_Flex_Bizon

12. https://nodejs.org/en/download
Мне досталась версия node-v18.18.2-x64.msi . Вместе с node.js не стал устанавливать Шоколадку, которая тянет много пакетов. Эти пакеты плохо контролируются. Еще один Питон! Зачем? Когда удалил все пакеты Chocolatey, но консоль Visual Studio 2022 для режима x64 перестала правильно запускаться. Так что Chocolatey не стал устанавливать.

13. Устанавливаем libclang отсюда — https://download.qt.io/development_releases/prebuilt/libclang/
Мне досталась версия libclang-release_18.1.0-based-windows-vs2019_64.7z
Распаковываем в папку C:\Prg\libclang_vs
В системную переменную Path не надо добавлять этот путь. Сразу в параметрах CMake пропишем, равно как и путь к PostgreSQL!

14. Нужно установить gperf. Скачал отсюда
https://sourceforge.net/projects/gnuwin32/files/gperf/
не самую свежую версию gperf-3.0.1.exe и установил её в папке C:\Prg\GnuWin32
В системную переменную Path прописал путь C:\Prg\GnuWin32\bin

15. Установил OpenSSL . Её требовала CopperSpice — библиотека, которая давным давно отпочковалась от Qt. Сам Qt её не требует. Качать можно отсюда — https://github.com/CristiFati/Prebuilt-Binaries/tree/master/OpenSSL/
Мне досталась версия OpenSSL-3.2.1-Win-pc064.zip . Распаковываем OpenSSL в каталог C:\Prg\OpenSSL\3.2.1, а в системную переменную Path прописываем путь C:\Prg\OpenSSL\3.2.1\bin

16. В системную переменную Path добавить путь к библиотеке Qt, чтобы другие программы, написанные на Qt могли запускаться. У меня этот путь такой:
C:\QtSource\ReleaseVS\Lib\bin

17. Теперь перейдём к закачке исходных текстов Qt.
Исходники Qt будем записывать в папку C:\QtSource\qt6 .
Для этого в командной строке (я пользуюсь Far Manager) сделаем текущим каталог C:\QtSource\ и запустим команду:
git clone git://code.qt.io/qt/qt5.git qt6
либо эту
git clone https://code.qt.io/qt/qt5.git qt6
перейдем в каталог C:\QtSource\qt6 командой
cd qt6
тут мы можем перейти в нужную ветку Qt. По умолчанию мы попадаем в ветку разработчиков dev, можно включить другую ветку, если Вы знаете её имя. Команда переключения веток такая:
git switch dev
потом запустим команду:
init-repository.bat
Она скачает все исходные тексты.

18. Теперь перейдём к закачке исходных текстов QtCreator.
Перейдем в каталог C:\QtSource
Запускаем команду
git clone git://code.qt.io/qt-creator/qt-creator.git
или такую
git clone https://code.qt.io/qt-creator/qt-creator.git

19. Теперь перейдем к очень важному этапу создания нужных папок!
У нас уже есть каталог C:\QtSource
В нем есть каталог C:\QtSource\qt6, в который мы закачали исходные тексты Qt
Также в нём есть C:\QtSource\qt-creator , в который мы закачали исходные тексты QtCreator.
Создадим каталог C:\QtSource\Bat — в нем будут bat файлы для запуска нужных для компиляции команд.
Создадим каталог C:\QtSource\Log — в нем будут log файлы, в которых будут отображаться весь процесс компиляции Qt.
Создадим каталог qtcreator_build_vs — в нем будет скомпилирован и собран QtCreator с помощью компилятора MSVC, который устаановился вместе с Visual Studio 2022. Можно скомпилировать все и с помощью GCC 11.2, но в этом случае невозможно скомпилировать QtWebEngine и также не получается скомпилировать модуль для PostgreSQL.
Создадим каталоги:
C:\QtSource\ReleaseVS
C:\QtSource\ReleaseVS\Build — тут будут храниться результаты конфигурирования библиотеки Qt
C:\QtSource\ReleaseVS\Lib — тут будет храниться уже готовая к употреблению библиотека Qt

20. Теперь перейдем к очень важному этапу создания нужных файлов! Звёздочки копировать не надо! Они просто служат для обозначения границ — начало файла и конец файла.
Создадим файл C:\QtSource\Bat\LogReleaseVSConfig.bat и запишем его содержимое таким образом:
****************
ReleaseVSConfig.bat => ./../Log/ReleaseVSConfig.log
****************

Создадим файл C:\QtSource\Bat\LogReleaseVSBuild.bat и запишем его содержимое таким образом:
****************
ReleaseVSBuild.bat => ./../Log/ReleaseVSBuild.log
****************

Создадим файл C:\QtSource\Bat\ReleaseVSConfig.bat и запишем его содержимое таким образом:
****************

set Path=%Path%;C:\Prg\PostgreSQL\16
set BUILD_DIR=C:/QtSource

cd %BUILD_DIR%/ReleaseVS/Build

%BUILD_DIR%/Qt6/configure -prefix %BUILD_DIR%/ReleaseVS/Lib ^
-release ^
-sql-psql ^
-android-javac-source 8 -android-javac-target 8 ^
— -DCMAKE_PREFIX_PATH=C:/Prg/libclang_vs;C:/Prg/PostgreSQL/16

****************

Тут хочу сделать небольшой комментарий. Ранее параметр — -DCMAKE_PREFIX_PATH=C:/Prg/libclang_vs;C:/Prg/PostgreSQL/16 отрабатывал хорошо на два пути, а с недавних пор захватывается только один путь, а второй, который следует за точкой с запятой — отбрасывается с предупреждением.

CMake Warning: Ignoring extra path from command line: «C:/Prg/PostgreSQL/16»

Поэтому я включил этот путь в переменную системную Path. Можно его включить в систему и на постоянной основе, а не в bat файле. Почему я так сделал? При компиляции библиотеки CopperSpices этот буть мне мешал и приводил к ошибке. Правда эта ошибка уже давно может быть исправлена. Пока не проверял.

Создадим файл C:\QtSource\Bat\ReleaseVSBuild.bat и запишем его содержимое таким образом:
****************
set BUILD_DIR=C:/QtSource

cd %BUILD_DIR%/ReleaseVS/Build

cmake —build . —parallel

cd %BUILD_DIR%/ReleaseVS/Build

cmake —install  .
****************

Создадим файл C:\QtSource\Bat\Log-qt-creator-build-vs.bat и запишем его содержимое таким образом:
****************
qt-creator-build-vs.bat => ./../Log/qt-creator-build-vs.log
****************

Создадим файл C:\QtSource\Bat\qt-creator-build-vs.bat и запишем его содержимое таким образом:
****************
rem set Path=%Path%;C:\QtSource\ReleaseVS\Lib\bin
cd C:\QtSource\qtcreator_build_vs

cmake -DCMAKE_BUILD_TYPE=Release -G Ninja «-DCMAKE_PREFIX_PATH=C:\QtSource\ReleaseVS\Lib;C:\Prg\libclang_vs» C:\QtSource\qt-creator
cmake —build .
****************

21. Теперь мы должны запустить терминал (консоль), но не просто любую командную оболочку, а ту которую предоставила нам программа Visual Studio 2022. Я выбрал x64 Native Tools. У меня этот ярлык находится тут:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2022\Visual Studio Tools\VC\x64 Native Tools Command Prompt for VS 2022.lnk
Для удобства я его закрепил на панели задач, так как приходится часто его нажимать. Обычно я сразу же перехожу в каталог Far Manager и запускаю его. Так удобнее. Например так:
cd C:\P + клавиша Tab — получаем cd C:\Prg, набираем символы \f и нажимаем клавишу Tab, получаем cd «C:\Prg\Far Manager», нажимаем Enter, набираем Far и снова нажимаем Enter — вот Far Manager и запустился.
Если же мы выберем другую архитектуру компилятора, наприме x86_x64, то мы тоже сможем скомпилировать библиотеку Qt и в ней, но в этом случае на неудастся соединиться с сервером PostgreSQL при помощи его родных библиотек, как например C:\Prg\PostgreSQL\16\bin\libpq.dll и подобных. Для успешного соединения нам, вероятней всего понадобится набор таких библиотек, скомпилированных именно для архитектуры x86_x64.

22. Теперь просто последовательно запускаем три файла
C:\QtSource\Bat\LogReleaseVSConfig.bat
C:\QtSource\Bat\LogReleaseVSBuild.bat
C:\QtSource\Bat\Log-qt-creator-build-vs.bat
При этом нужно ждать, пока завершится выполнения каждого файла, перед тем как запускать следующий.

Вот и всё! В итоге мы получили рабочую библиотеку Qt и замечательный инструмент Qt Creator! Можно на рабочем столе создать ярлык для запуска Qt Creator и работать по-стахановски. Qt Creator находится здесь — C:\QtSource\qtcreator_build_vs\bin\qtcreator.exe .

Харе Кришна!
С уважением, Навадвипа Чандра дас.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

+ 54 = sixty two