Настройка среды разработки Qt5 под Windows
В 1995 году вышла первая версия Qt, инструментария для разработки, который выгодно отличался тем, что предоставлял одинаковый API для разработки как в Windows так и в LInux. С тех пор многое поменялось, теперь вы можете использовать этот Qt5 совершенно бесплатно, при условии динамической линковки с библиотеками фреймворка.
Для создания программ на Qt5 под Windows потребуется MinGW – минималистическая среда разработки программ под Windows. А для установки мы будем использовать MSYS2 – надстройку над MinGW.
Введение
Инструментарий программиста за время с конца XX века претерпел множество изменений. В начале 90-х, когда я только знакомился с программированием, практический весь инструментарий для разработки ПО, в нашей стране, был «пиратским». Не было рынка программного обеспечения (ПО) и соответственно все пользовались тем, что продавалось на «Горбушке» и у «пиратов» на дискетах или дисках. В тоже время на западе практически все популярные среды для разработки ПО, например Borland Pascal, Borland C++, Delphi, C++ Builder и т.д. были платными.
Время шло, развивалось не только платное (проприетарное), но и свободно распространяемое программное обеспечение - это системы Unix/Linux и все производные от них. Развивался инструментарий для разработки для этих систем и, что самое главное, он был бесплатным. Сегодня, для того чтобы создать программу, необязательно тратить крупные суммы на покупку IDE для разработчика.
Qt5 предоставляет удобный и бесплатный инструментарий для разработки ПО на языке C++. Программы, написанные с помощью данного фреймворка, имеют нативный интерфейс что на Windows, что на Linux, а значит программисту не нужно заботиться о «подгонке» дизайна под конкретную ОС или дистрибутив.
Когда я первый раз устанавливал Qt5 c помощью MSYS2 я столкнулся со целым рядом проблем в процессе установки и настройки и это с учетом использования официального гайда по установке. В этой статье я по шагам опишу процесс установки, так что вы сможете без проблем установить среду разработки на ваш ПК.
Внимание! Чтобы избежать проблем и непонятных глюков, я настоятельно рекомендую удалить старые версии MinGW, если они установлены и Git for Windows. А также почистить переменные среды, удалив все старые ссылки на MinGW. В противном случае могут возникать конфликты и глюки при использовании разных версий библиотек и программ.
Установка
Прежде всего нужно скачать MSYS2. Идем на официальный сайт https://www.msys2.org/ и скачиваем дистрибутив для Windows.
Мы будет ставить 64-битную версию. На момент написания руководства, это версия msys2-x86_64-20190524.exe.
Рекомендую ставить MSYS2 в корень любого диска. По умолчанию он ставиться в папку c:\msys64
Процесс установки элементарен, так что описывать его я не буду. Просто жмем “Далее”, а когда процесс закончиться – Завершить.
Откроется окно консоли MSYS2
Базовая система у нас установлена, переходим к следующему этапу – обновлению.
Обновление
Сразу после установки нужно запустить обновление системы Msys2. Для этого в консоли пишем:
pacman -Syu
Начнется подготовка к обновлению:
:: Обновление баз данных пакетов...
mingw32 454,0 KiB 257K/s 00:02 [#####################] 100%
mingw32.sig 119,0 B 0,00B/s 00:00 [#####################] 100%
mingw64 456,6 KiB 365K/s 00:01 [#####################] 100%
mingw64.sig 119,0 B 7,26K/s 00:00 [#####################] 100%
msys 183,1 KiB 619K/s 00:00 [#####################] 100%
msys.sig 119,0 B 0,00B/s 00:00 [#####################] 100%
:: Starting core system upgrade...
предупреждение: terminate other MSYS2 programs before proceeding
разрешение зависимостей...
проверка конфликтов...
Пакеты (8) bash-4.4.023-2 filesystem-2020.02-2 libzstd-1.4.4-2
mintty-1~3.1.4-1 msys2-runtime-3.0.7-6 pacman-5.2.1-6
pacman-mirrors-20200307-1 zstd-1.4.4-2
Будет загружено: 16,51 MiB
Будет установлено: 65,35 MiB
Изменение размера: -4,37 MiB
:: Приступить к установке? [Y/n] y
В процессе обновления будет выдан запрос на установку, нажимаем Y и Enter
:: Получение пакетов...
msys2-runtime-3.0.7... 2,6 MiB 437K/s 00:06 [#####################] 100%
bash-4.4.023-2-x86_64 1934,3 KiB 362K/s 00:05 [#####################] 100%
filesystem-2020.02-... 44,9 KiB 0,00B/s 00:00 [#####################] 100%
mintty-1~3.1.4-1-x86_64 668,9 KiB 317K/s 00:02 [#####################] 100%
pacman-mirrors-2020... 20,0 KiB 0,00B/s 00:00 [#####################] 100%
libzstd-1.4.4-2-x86_64 259,0 KiB 221K/s 00:01 [#####################] 100%
zstd-1.4.4-2-x86_64 304,7 KiB 205K/s 00:01 [#####################] 100%
ошибка: не удалось получить файл 'pacman-5.2.1-6-x86_64.pkg.tar.xz' из repo.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
ошибка: не удалось получить файл 'pacman-5.2.1-6-x86_64.pkg.tar.xz' из sourceforge.net : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds
pacman-5.2.1-6-x86_64 4,8 MiB 1597K/s 00:03 [#####################] 100%
(8/8) проверка ключей [#####################] 100%
(8/8) проверка целостности пакета [#####################] 100%
(8/8) загрузка файлов пакетов [#####################] 100%
(8/8) проверка конфликтов файлов [#####################] 100%
(8/8) проверка доступного места [#####################] 100%
предупреждение: не удалось получить информацию о файле для clang32/
предупреждение: не удалось получить информацию о файле для clang32/bin/
предупреждение: не удалось получить информацию о файле для clang32/etc/
предупреждение: не удалось получить информацию о файле для clang32/etc/config.site
предупреждение: не удалось получить информацию о файле для clang32/include/
предупреждение: не удалось получить информацию о файле для clang32/lib/
предупреждение: не удалось получить информацию о файле для clang32/share/
предупреждение: не удалось получить информацию о файле для clang64/
предупреждение: не удалось получить информацию о файле для clang64/bin/
предупреждение: не удалось получить информацию о файле для clang64/etc/
предупреждение: не удалось получить информацию о файле для clang64/etc/config.site
предупреждение: не удалось получить информацию о файле для clang64/include/
предупреждение: не удалось получить информацию о файле для clang64/lib/
предупреждение: не удалось получить информацию о файле для clang64/share/
предупреждение: не удалось получить информацию о файле для opt/
:: Обработка изменений пакета...
(1/8) обновление msys2-runtime [#####################] 100%
(2/8) обновление bash [#####################] 100%
(3/8) обновление filesystem [#####################] 100%
(4/8) обновление mintty [#####################] 100%
(5/8) обновление pacman-mirrors [#####################] 100%
(6/8) установка libzstd [#####################] 100%
(7/8) установка zstd [#####################] 100%
(8/8) обновление pacman [#####################] 100%
предупреждение: terminate MSYS2 without returning to shell and check for updates again
предупреждение: for example close your terminal window instead of calling exit
У меня посыпались множественные ошибки, в этом нет ничего страшного, просто закрываем окно консоли, на предупреждение нажимаем «ОК» и запускаем её снова.
Идем в папку C:\msys64 и запускаем msys2.exe
В консоли вводим:
pacman -Su
:: Starting core system upgrade...
делать больше нечего
:: Запускается полное обновление системы...
разрешение зависимостей...
проверка конфликтов...
Пакеты (52) bash-completion-2.10-1 brotli-1.0.7-2 bsdcpio-3.4.2-2
bsdtar-3.4.2-2 bzip2-1.0.8-1 ca-certificates-20190110-1
coreutils-8.32-1 curl-7.69.0-1 dtc-1.6.0-1 file-5.38-2
findutils-4.7.0-1 gawk-5.0.1-1 gcc-libs-9.1.0-2 glib2-2.54.3-2
gmp-6.2.0-1 gnupg-2.2.19-1 heimdal-libs-7.7.0-1 icu-65.1-1
less-551-1 libarchive-3.4.2-2 libbz2-1.0.8-1 libcurl-7.69.0-1
libedit-20191231_3.1-1 libexpat-2.2.9-1 libgcrypt-1.8.5-1
libgnutls-3.6.12-1 libgpg-error-1.37-1 libgpgme-1.13.1-2
libhogweed-3.5.1-1 libiconv-1.16-1 libidn2-2.3.0-1
liblz4-1.9.2-1 libnettle-3.5.1-1 libnghttp2-1.40.0-1
libopenssl-1.1.1.d-1 libp11-kit-0.23.20-1 libpcre2_8-10.34-1
libpsl-0.21.0-1 libreadline-8.0.004-1 libsqlite-3.30.0-1
libssh2-1.9.0-1 libtasn1-4.16.0-1 libutil-linux-2.35-1
libxml2-2.9.10-2 libxslt-1.1.34-1 ncurses-6.2-1 nettle-3.5.1-1
openssl-1.1.1.d-1 p11-kit-0.23.20-1 pkgfile-21-1 sed-4.8-1
util-linux-2.35-1
Будет загружено: 36,58 MiB
Будет установлено: 208,87 MiB
Изменение размера: 7,09 MiB
:: Приступить к установке? [Y/n]
В процессе обновления будет выдан запрос на установку, нажимаем Y и Enter
Начнется процесс скачивания обновлений и их установки, он может занять длительно время (здесь и далее я, я буду сокращать вывод команд установки и обновления):
:: Получение пакетов...
bash-completion-... 211,6 KiB 242 KiB/s 00:01 [#####################] 100%
...
util-linux-2.35-... 1509,4 KiB 233 KiB/s 00:06 [#####################] 100%
(52/52) проверка ключей [#####################] 100%
(52/52) проверка целостности пакета [#####################] 100%
(52/52) загрузка файлов пакетов [#####################] 100%
(52/52) проверка конфликтов файлов [#####################] 100%
(52/52) проверка доступного места [#####################] 100%
:: Обработка изменений пакета...
( 1/52) обновление bash-completion [#####################] 100%
...
(52/52) обновление util-linux [#####################] 100%
Мы обновили базовую систему и все основные пакеты.
Для начала проверим, что се обновилось корректно, для этого поставим Git, он нам в любом случае понадобиться.
pacman -S git
$ pacman -S git
разрешение зависимостей...
проверка конфликтов...
Пакеты (35) db-5.3.28-2 expat-2.2.9-1 gdbm-1.18.1-2 heimdal-7.7.0-1
libgdbm-1.18.1-2 openssh-8.2p1-1 perl-5.30.1-1
perl-Authen-SASL-2.16-2 perl-Convert-BinHex-1.125-1
perl-Encode-Locale-1.05-1 perl-Error-0.17029-1
perl-File-Listing-6.04-2 perl-HTML-Parser-3.72-4
perl-HTML-Tagset-3.20-2 perl-HTTP-Cookies-6.08-1
perl-HTTP-Daemon-6.01-2 perl-HTTP-Date-6.05-1
perl-HTTP-Message-6.22-1 perl-HTTP-Negotiate-6.01-2
perl-IO-Socket-SSL-2.066-1 perl-IO-stringy-2.111-1
perl-LWP-MediaTypes-6.02-2 perl-MIME-tools-5.509-1
perl-MailTools-2.21-1 perl-Net-HTTP-6.19-1
perl-Net-SMTP-SSL-1.04-1 perl-Net-SSLeay-1.88-1
perl-TermReadKey-2.38-1 perl-TimeDate-2.32-1 perl-Try-Tiny-0.30-1
perl-URI-1.76-1 perl-WWW-RobotRules-6.02-2 perl-libwww-6.43-1
vim-8.2.0121-1 git-2.25.1-1
Будет загружено: 28,99 MiB
Будет установлено: 140,40 MiB
:: Приступить к установке? [Y/n] y
:: Получение пакетов...
expat-2.2.9-1-x86_64 43,7 KiB 16,7 KiB/s 00:03 [#####################] 100%
...
git-2.25.1-1-x86_64 5,3 MiB 352 KiB/s 00:16 [#####################] 100%
(35/35) проверка ключей [#####################] 100%
(35/35) проверка целостности пакета [#####################] 100%
(35/35) загрузка файлов пакетов [#####################] 100%
(35/35) проверка конфликтов файлов [#####################] 100%
(35/35) проверка доступного места [#####################] 100%
:: Обработка изменений пакета...
( 1/35) установка expat [#####################] 100%
...
(35/35) установка git [#####################] 100%
Дополнительные зависимости для 'git'
python2: various helper scripts
subversion: git svn
Установка C++
Приступим к установке библиотек и утилит необходимых для разработки.
Запускаем
pacman -S base-devel git mercurial cvs wget p7zip
$ pacman -S base-devel git mercurial cvs wget p7zip
:: 58 объектов в группе base-devel:
:: Repository msys
1) asciidoc 2) autoconf 3) autoconf2.13 4) autogen 5) automake-wrapper
6) automake1.10 7) automake1.11 8) automake1.12 9) automake1.13
10) automake1.14 11) automake1.15 12) automake1.16 13) automake1.6
14) automake1.7 15) automake1.8 16) automake1.9 17) bison 18) btyacc
19) diffstat 20) diffutils 21) dos2unix 22) file 23) flex 24) gawk
25) gdb 26) gettext 27) gettext-devel 28) gperf 29) grep 30) groff
31) help2man 32) intltool 33) lemon 34) libtool 35) libunrar
36) libunrar-devel 37) m4 38) make 39) man-db 40) pacman
41) pactoys-git 42) patch 43) patchutils 44) perl 45) pkg-config
46) pkgfile 47) quilt 48) rcs 49) reflex 50) scons 51) sed 52) swig
53) texinfo 54) texinfo-tex 55) ttyrec 56) unrar 57) wget 58) xmlto
Выберите вариант (по-умолчанию=все):
Нажимаем Enter
...
разрешение зависимостей...
проверка конфликтов...
Пакеты (79) docbook-xml-4.5-2 docbook-xsl-1.79.2-1 libatomic_ops-7.6.10-1
libgc-7.6.8-1 libguile-2.2.6-1 libiconv-devel-1.16-1
...
rcs-5.9.4-2 reflex-20191123-1 scons-3.1.2-2 sed-4.8-1
swig-4.0.1-1 texinfo-6.6-1 texinfo-tex-6.6-1 ttyrec-1.0.8-2
unrar-5.9.1-1 wget-1.20.3-1 xmlto-0.0.28-2
Будет загружено: 53,08 MiB
Будет установлено: 428,84 MiB
Изменение размера: 281,34 MiB
:: Приступить к установке? [Y/n]
Нажимаем Y и Enter
Ждем загрузки и установки компонентов.
Далее запускаем:
pacman -S perl ruby python2 mingw-w64-x86_64-toolchain
предупреждение: perl-5.30.1-1 не устарел -- переустанавливается
:: 17 объектов в группе mingw-w64-x86_64-toolchain:
:: Repository mingw64
1) mingw-w64-x86_64-binutils 2) mingw-w64-x86_64-crt-git
3) mingw-w64-x86_64-gcc 4) mingw-w64-x86_64-gcc-ada
5) mingw-w64-x86_64-gcc-fortran 6) mingw-w64-x86_64-gcc-libgfortran
7) mingw-w64-x86_64-gcc-libs 8) mingw-w64-x86_64-gcc-objc
9) mingw-w64-x86_64-gdb 10) mingw-w64-x86_64-headers-git
11) mingw-w64-x86_64-libmangle-git 12) mingw-w64-x86_64-libwinpthread-git
13) mingw-w64-x86_64-make 14) mingw-w64-x86_64-pkg-config
15) mingw-w64-x86_64-tools-git 16) mingw-w64-x86_64-winpthreads-git
17) mingw-w64-x86_64-winstorecompat-git
Выберите вариант (по-умолчанию=все):
Нажимаем Enter
разрешение зависимостей...
проверка конфликтов...
Пакеты (48) libyaml-0.2.2-1 mingw-w64-x86_64-bzip2-1.0.8-1
mingw-w64-x86_64-ca-certificates-20190110-1
mingw-w64-x86_64-expat-2.2.9-1 mingw-w64-x86_64-gettext-0.19.8.1-8
...
mingw-w64-x86_64-winpthreads-git-8.0.0.5574.33e5a2ac-1
mingw-w64-x86_64-winstorecompat-git-8.0.0.5573.a4de8df4-1
perl-5.30.1-1 python2-2.7.17-1 ruby-2.6.5-1
Будет загружено: 161,54 MiB
Будет установлено: 1046,35 MiB
Изменение размера: 995,82 MiB
:: Приступить к установке? [Y/n]
Нажимаем Y и Enter
Ждем загрузки и установки компонентов.
Установка нужных базовых компонентов завершена.
Установка Qt5
Запустим установку Qt5, в консоли введем:
pacman -S mingw-w64-x86_64-qt-creator mingw-w64-x86_64-clang
Обратите внимание, что загрузка и установка этих компонентов занимает много времени!
Ждем окончания скачивания и установки всех компонентов.
Установка qtcreator завершена, теперь нужно провести дополнительные настройки:
В консоли введем команду:
rundll32 sysdm.cpl,EditEnvironmentVariables
откроется окно "Переменные среды"
Выбираем переменную Path и нажимаем Изменить
Нажимаем «Создать» и прописываем
C:\msys64\mingw64\bin
Закрываем консоль
Запуск Qt Creator
Запустим обычную консоль cmd.exe
И введём
qtcreator
Если всё сделано правильно, запустится IDE Qt Creator:
Сменим язык на английский, вы можете использовать и русский, но при возникновении проблем, проще будет найти информацию на английском.
Выберем меню Инструменты-> Параметры
Выберем пункт Среда и поле Язык выставим English
Теперь осталось только перезапустить Qt Creator
После перезапуска интерфейс среды разработки изменится на Английский.
Создадим новый проект
File –> New File or Project
Выбираем Application -> Qt Widgets Application и нажимаем на «Choose …»
В этом окне вы можете выбрать папку и название проекта, назовем проект qt_test
Далее нажимаем Next четыре раза
Теперь нам нужно выбрать Kit – набор разработчика. Выбираем Desktop Qt MinGW-w64 64bit (MSYS2)
Далее нажимаем Next и Finish
Теперь осталось только запустить сборку проекта, для того, чтобы проверить, что всё верно настроено.
Нажимаем Ctrl+r
Получаем ошибку, связанную с Vulkan SDK, в открывшемся окне жмем Yes. Эту ошибку можно смело проигнорировать.
У нас должно открыться пустое окно:
Вот и всё. Среда настроена и готова к использованию.
Заключение
Установка среды разработки и настройка Qt Creator не представляет больших проблем, но есть некоторые подводные камни и неочевидные вещи. Руководствуясь материалами данной статьи, вы сможете установить Qt5 на свой ПК и использовать Qt Creator, для разработки ПО.
Добавить комментарий