Настройка среды разработки Qt5 под Windows - АлтунинВВ.Блог - всё об IT-технологиях!
Среда, 25 марта 2020 16:02

Настройка среды разработки 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 или c:\msys32.

Процесс установки элементарен, так что описывать его я не буду. Просто жмем “Далее”, а когда процесс закончиться – Завершить.

Откроется окно консоли Msys2

Базовая система у нас установлена, переходим к следующему этапу – обновлению.

Обновление

Сразу после установки нужно запустить обновление системы Msys2. Для этого в консоли пишем:

pacman –Syu

Начнется подготовка к обновлению: 

$ 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

$ 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

Выберите вариант (по-умолчанию=все):

Нажимaем 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

Выберите вариант (по-умолчанию=все):

Нажимaем 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, для разработки ПО.

Прочитано 640 раз Последнее изменение Вторник, 28 июля 2020 11:25