Разное

Qt для windows: Qt 5.14.2 скачать бесплатно на русском для Windows

Содержание

Компилируем 64-битную версию Qt под windows / Хабр

За последние годы кросс-платформенная библиотека Qt получила не только многочисленные улучшения, но также собственную среду разработки QtCreator и удобные инсталляторы под все операционные системы. Теперь для разработки не нужно самому устанавливать необходимое окружение, прописывать пути, интегрировать библиотеку в ide — достаточно запустить инсталлятор и все будет работать «из коробки». К сожалению, версия для windows имеет инсталлятор только для 32-битной сборки библиотеки и ide. А иногда возникает необходимость сделать именно 64-битное приложение — чаще всего это связано с необходимостью использовать чужие 64-битные компоненты: подгружаемые библиотеки, inproc com компоненты и прочие странные штуки. Под катом содержится подробная инструкция как скомпилировать Qt и QtCreator из исходников для 64-битной архитектуры.
Сборка займет порядка 6 часов времени и 8 гигабайт места на жестком диске :).
Для корректной работы отладчика в QtCreator собирать рекомендуется компилятором от Microsoft.
Скачиваем SDK тут, запускаем инсталлятор и устанавливаем всю ветку «developer tools» (при сборке Qt используется почти все оттуда).
Скачиваем исходники последнего QtCreator 1.3 тут и распаковываем архив в
c:\qt\
Переименовываем распаковавшуюся папку в
2010.01.x64
Затем скачиваем исходники последней Qt 4.6 тут и распаковываем архив в
c:\qt\2010.01.x64
Переименовываем распаковавшуюся папку в
qt
Здесь нужно учитывать, что при компиляции имена папок будут вкомпилированы в qmake и поменять их будет нельзя. Приведенные мной имена папок соответствует тому, куда Qt устанавливает инсталлятор под windows.
Запускаем
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\Visual Studio 2008 x64 Win64 Command Prompt.lnk

В открывшейся консоли последовательно выполняем:

cd c:\qt\2010.01.x64\qt

configure.exe

o

y

nmake

Вызов configure.exe создает makefile для сборки всего компилятором от microsoft (компилятор

определится автоматически, так как мы работаем в visual studio command prompt — переменные окружения с нами). «o» выберет тип лицензии open source (бесплатно), «y» подтвердит соглашение с лицензией. Вызов nmake — это собственно утилита от microsoft для чтения makefile и компиляции чего надо и чего не надо. После того как nmake отработала (а это несколько часов) не закрываем консоль и копируем куда-нибудь во временную папку все .pdb файлы из
c:\qt\2010.01.x64\qt\lib

Из-за баги в makefile они будут стерты при удалении временных файлов. Затем продолжаем в консоли:

nmake clean

set PATH=%PATH%;c:\qt\2010.01.x64\qt\bin

cd c:\qt\2010.01.x64

qmake "CONFIG+=release" -r

nmake release

Не закрывая консоль, копируем во временную папку все .pluginspec файлы из
c:\qt\2010.01.x64\lib\qtcreator\plugins\nokia

Это тоже баг в makefile. Затем продолжаем в консоли:

nmake clean

После того как все скомпилировалось, перемещаем .pdb и .pluginspec файлы обратно. QtCreator компилируется в релизном варианте, так как отладочный билд будет запускаться как command-line приложение с неубираемой консолью.

После того как все успешно собрано, все .dll файлы в окончании имени которых нет «d» копируются из папки
c:\qt\2010.01.x64\qt\bin
в папку
c:\qt\2010.01.x64\bin
Среда разработки QtCreator запускается как
c:\qt\2010.01.x64\bin\qtcreator.exe
Перед его вызовом необходимо вызвать
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat

Это нужно для того, чтобы QtCreator корректно работал с компилятором и отладчиком от Microsoft.

Запускаем QtCreator, выбираем Tools->Options->Project, снимаем галочку с «Use jom». Можно в принципе и не снимать, но тогда этот самый jom нужно будет скачать и скопировать в «bin». Нажимаем «Apply».

Затем выбираем Tools->Options->Qt4->QtVersions, нажимаем на «+» в правом верхнем углу, в поле «Version Name» прописываем «Qt 4.6.0 x64», в поле «QMake location» прописываем

«C:\qt\2010.01.x64\qt\bin\qmake.exe», устанавливаем «MSVC Version» в «9.0», в поле «Default Qt Version» выбираем «Qt 4.6.0 x64» и нажимаем на кнопку «Rebuild». Выбираем Tools->Options->Help->Documentation, нажимаем «Add» и добавляем все .qch файлы из c:\qt\2010.01.x64\qt\doc\qch

Вообщем-то все. Создание, редактирование, сборка и, что самое приятное — отладка 64 битных Qt программ под windows к вашим услугам. За сим прощаюсь и жду комментариев. Если есть вопросы — постараюсь ответить. Если есть что рассказать (может зря я все это делал и на просторах сети уже лежат готовые инсталляторы 🙂 — буду благодарен.

Для сборки с недавно вышедшем Visual Studio 2010 SDK необходимо запускать configure.exe с ключем

-platform win32-msvc2008

При этом желательно использовать последнюю версию Qt из GIT и бранч 2.0 Qt Creator оттуда же

git clone -b 2.0 git://gitorious.org/qt-creator/qt-creator.git c:\qt\qt-creator.latest

Перед запуском необходимо установить perl и заменить в qt/mkspecs/win32-msvc2010/qmake.conf фрагмент «QMAKE_CFLAGS_RELEASE = -O2 -MD» на «QMAKE_CFLAGS_RELEASE = -Od -MD».

Собираем приложение Qt в WebAssembly в Windows / Хабр

Как известно, приложения написанные на Qt, который является кросс платформенными запускаются от desktop, мобильных, интернет вещей, до микроконтроллеров.

Один из вариантов это сборка приложения Qt в WebAssembly — которое позволит Вам запускать его в браузере у пользователя. Таким образом обновление приложения для пользователя будет заключаться в загрузке на сервер нового файла wasm.

Чтобы легче было осуществлять деплой приложения, в рамках данной статьи давайте соберём приложение Qt в WebAssembly под Windows в командной строке.

В статье использована версия Qt 5.13.2 и я считаю, что у пользователя в Windows среда Qt установлена, настроена, и приложения для Desktop он без проблем собирает.

Запускаем утилиту MaintenanceTool.exe и выбираем «Добавление или удаление компонентов» и ставим галочку у WebAssembly и ждём завершения установки.

Создаём пустой проект, например в Qt Creator (Qt Stack-view) и сохраняем его.

Идем на официальную страницу документации Qt WASM.

Начинаем ставить esmdk. Скачиваем emscripten и распаковываем, например в c:\wasm

Запускаем командную строку (пуск выполнить cmd) и пытаемся установить его:

cd c:\emsdk
emsdk.bat install sdk-fastcomp-1.38.27-64bit

У нас ничего не происходит. И курсор уже находится на следующей строке. Что могло случиться? Давайте посмотрим, почему? Открываем файл блокнотом и видим:

Нам нужен питон? Проверяем? Пишем в командной строке

c:\emsdk>python --version
"python" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Ну значит нам еще необходимо установить Python. Скачиваем и устанавливаем его. Не забудьте добавить галочку при устанговке «Add Python 3.8 to PATH»

После загрузки и установки, закрываем командную строку и запускаем снова CMD. Проверяем:

c:\emsdk>python --version
Python 3.8.1

Устанавливаем emsdk и активируем окружение окружение для сборки:

emsdk.bat install sdk-fastcomp-1.38.27-64bit
emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit

Проверяем:

em++

Компилятор готов. Пора приступать к сборке нашего приложения. Посмотрим в папку, где установлен Qt wasm: в моем случае он находится в C:\Qt\5.13.2\wasm_32

Запускаем командную строку с окружением для сборки Mingw: Пуск mingw — выбираем Qt 5.13.2 (MinGW 7.3.0 32-bit)

В ней активируем наш emsdk:

c:\emsdk\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit

заходим в папку с тестовым приложением и пытаемся собрать:

cd c:\Project\test-wasm
qmake
"qmake" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Что-то пошло не так? Я как-то не правильно активировал строку и окружение для сборки? Закроем командную строку и снова её запустим: Пуск mingw — выбираем Qt 5.13.2 (MinGW 7.3.0 32-bit) и проверим, что qmake есть у нас:

Setting up environment for Qt usage...

C:\Qt\5.13.2\mingw73_32>qmake --version
QMake version 3.1
Using Qt version 5.13.2 in C:/Qt/5.13.2/mingw73_32/lib

Все хорошо, окружение Qt активировано и qmake работоспособно. Пробуем снова активировать emsdk и получаем ту же самую ошибку.

Ну хорошо, подумал я, можно же сделать и подругому: сначала запустим emsdk, а потом активируем окружение mingw — для этого нам надо посмотреть ярлык запуска консоли с окружением mingw32 (пуск выполнить mingw — правая кнопка открыть расположение файла — правой кнопкой мыши на «Qt 5.13.2 (MinGW 7.3.0 32-bit)» — свойства.

В объекте нас интересует путь к запуску bat файла. В моём случае это C:\Qt\5.13.2\mingw73_32\bin\qtenv2.bat

Итак начинаем всё сначала. Пуск выполнить cmd

c:\emsdk\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit
C:\Qt\5.13.2\mingw73_32\bin\qtenv2.bat
qmake --version

работает… идём в папку с исходным кодом проекта

qmake
make
"make" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Вспоминаем, что мы используем mingw и в ней команда для сборки другая:
mingw32-make.exe

mingw32-make

Приложение собралось, но проверям, что было использовано:

g++ -Wl,-s -Wl,-subsystem,windows -mthreads -o release\test-wasm.exe release/main.o release/qrc_qml.o  C:\Qt\5.13.2\mingw73_32\lib\libQt5Quick.a C:\Qt\5.13.2\mingw73_32\lib\libQt5Gui.a C:\Qt\5.13.2\mingw73_32\lib\libQt5Qml.a C:\Qt\5.13.2\mingw73_32\lib\libQt5Network.a C:\Qt\5.13.2\mingw73_32\lib\libQt5Core.a  -lmingw32 C:\Qt\5.13.2\mingw73_32\lib\libqtmain.a -LC:\openssl\lib -LC:\Utils\my_sql\mysql-5.7.25-win32\lib -LC:\Utils\postgresql\pgsql\lib -lshell32
mingw32-make.exe[1]: Leaving directory 'c:/Project/test-wasm'

Так. Стоп? Что мы собрали?

Мы же собрали обычное 32 битное приложение для desktop (x86) потому что у нас использовалась сборка C:\Qt\5.13.2\mingw73_32

А нам нужно было собрать WASM. Давайте подкорректируем окружение PATH, чтобы он брал сначала путь и qmake из папки wasm:

set PATH=c:\Qt\5.13.2\wasm_32\bin;%PATH%

Очищаем папку от собранных файлов

mingw32-make.exe clean
del .qmake.stash

Запускаем сборку

qmake

Что такое? Опять ошибка? Что за dll нам нужна? Давайте ее поищем в папке, где установлен Qt:

Разве такое может быть? 32 битный собранный WASM (c:\Qt\5.13.2\wasm_32\bin) использует библиотеку от 64 битного MINGW?

Ну допустим, можно и рискнуть, добавить путь до этой 64 битной библиотеки:

set PATH=c:\qt\5.13.2\mingw73_64\bin;%PATH%
mingw32-make.exe clean
qmake
mingw32-make.exe

и… куча ошибокподробнее

release/main.o:main.cpp:(.text+0x1bc): undefined reference to `_imp___ZN4QUrlD1Ev'
release/main.o:main.cpp:(.text+0x1c6): undefined reference to `_imp___ZN11QMetaObject10ConnectionD1Ev'
release/main.o:main.cpp:(.text+0x1d7): undefined reference to `_imp___ZN21QQmlApplicationEngine4loadERK4QUrl'
release/main.o:main.cpp:(.text+0x1e0): undefined reference to `_imp___ZN15QGuiApplication4execEv'
release/main.o:main.cpp:(.text+0x1ef): undefined reference to `_imp___ZN21QQmlApplicationEngineD1Ev'
release/main.o:main.cpp:(.text+0x1f8): undefined reference to `_imp___ZN15QGuiApplicationD1Ev'
release/main.o:main.cpp:(.text+0x225): undefined reference to `_imp___ZN10QArrayData10deallocateEPS_jj'
release/main.o:main.cpp:(.text+0x249): undefined reference to `_imp___ZN21QQmlApplicationEngineD1Ev'
release/main.o:main.cpp:(.text+0x252): undefined reference to `_imp___ZN15QGuiApplicationD1Ev'
release/main.o:main.cpp:(.text+0x276): undefined reference to `_imp___ZN10QArrayData10deallocateEPS_jj'
release/main.o:main.cpp:(.text+0x28f): undefined reference to `_imp___ZN4QUrlD1Ev'
release/main.o:main.cpp:(.text+0x2aa): undefined reference to `_imp___ZN4QUrlD1Ev'
release/qrc_qml.o:qrc_qml.cpp:(.text+0x23): undefined reference to `qUnregisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)'
release/qrc_qml.o:qrc_qml.cpp:(.text+0x53): undefined reference to `qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)'
release/qrc_qml.o:qrc_qml.cpp:(.text+0x83): undefined reference to `qUnregisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)'
release/qrc_qml.o:qrc_qml.cpp:(.text.startup+0x23): undefined reference to `qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)'

C:/Qt/Tools/mingw730_32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [Makefile.Release:66: release/test-wasm.exe] Error 1
mingw32-make[1]: Leaving directory 'c:/Project/test-wasm'
mingw32-make: *** [Makefile:38: release] Error 2

Почему столько ошибок? Почему не собралось? Я же почистил временные файлы, запустил сборку, и получил так много error.

Так, надо подумать, налить чашку чая/кофе…

Точно! Идея! Т.к. видимо мы прописали последним путь к 64 битным библиотекам, то следовательно при сборке 32 разрядного WASM он не понял, как и что линковать, и пытался использовать путь к 64 битным lib, а значит мне надо было указать путь до 32 битных lib раньше, чем до 64 битных. Попробую исправить:

Закрываем консоль. Открываем снова mingw 32-bit и тут меня посещает мысль: т.к. мы запустили уже командную строку для mingw 32 бит, то заменив путь до библиотек на 64 битные, мы снова сделаем приоритет при сборке на 64 битные компоненты Desktop окружения Qt, а нам надо наоброт (т.к. сначала будет использоваться PATH до 64 битных, а затем до 32 итных библиотек). Ну тогда у нас итоговый алгоритм будет такой:

cmd
c:\emsdk\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit

set PATH=c:\qt\5.13.2\mingw73_64\bin;%PATH%
qmake --version
QMake version 3.1
Using Qt version 5.13.2 in C:/qt/5.13.2/mingw73_64/lib

добавляем путь до wasm и идём собирать:

set PATH=c:\Qt\5.13.2\wasm_32\bin;%PATH%
cd c:\Project\test-wasm

c:\Project\test-wasm>qmake --version
QMake version 3.1
Using Qt version 5.13.2 in C:/Qt/5.13.2/wasm_32/lib
qmake
mingw32-make
"mingw32-make" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Опять 25! А сейчас то что у меня не так? Где вообще этот файл? Куда делся? Поиски в проводнике говорят что он находится в C:\Qt\Tools\mingw730_32\bin

Ну хорошо, mingw32-make.exe теперь точно у нас будет найден:

set PATH=C:\Qt\Tools\mingw730_32\bin;%PATH%

Начинаем собирать:

c:\Project\test-wasm>mingw32-make
c:\Qt\5.13.2\wasm_32\bin\qmake.exe -o Makefile test-wasm.pro
Info: creating stash file C:\Project\test-wasm\.qmake.stash
sed -e s/@APPNAME@/test-wasm/g C:/Qt/5.13.2/wasm_32/plugins/platforms/wasm_shell.html > C:/Project/test-wasm/test-wasm.html
"sed" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
mingw32-make: *** [Makefile:424: apphtml] Error 1

sed ?? Это же не Linux, Mac, *nix, *BSD. Где его взять? Поищем (sed.exe)?.. И не находим.

Берем интернет, ищем (sed download windows) и находим, что его можно скачать для Windows:

Скачиваем binaries Zip, распаковываем из папки bin/sed.exe и запускаем:

Две ошибки на недостающие компоненты dll. Нам что теперь еще и sed надо будет самим собирать из исходников или искать эти отсутствующие dll? Нет, такого бы не хотелось делать… Еще раз внимательнее смотрим сайт GNU и видим в Downloads: • Complete package, except sources Setup

Скачиваем, распаковываем и устанавливаем. Пробуем запустить:

"c:\Program Files (x86)\GnuWin32\bin\sed.exe"

Работает!!! Осталось добавить его снова в путь:

set PATH="c:\Program Files (x86)\GnuWin32\bin";%PATH%
mingw32-make

Процессор загрузился, сборка началась. Ну вот, надеюсь, что теперь у нас все получится!

Прошло… минут

emcc: warning: cannot represent a NaN literal '0x22748a2c570' with custom bit pattern in NaN-canonicalizing JS engines (e.g. Firefox and Safari) without erasing bits!
  in   ret double 0x7FF4000000000000 in _ZL7qt_snanv()
emcc: warning: cannot represent a NaN literal '0x22748a2c570' with custom bit pattern in NaN-canonicalizing JS engines (e.g. Firefox and Safari) without erasing bits!
  in   ret double 0x7FF4000000000000 in _ZL7qt_snanv.30589()

c:\Project\test-wasm>dir
...
25.01.2020  17:42             2 922 test-wasm.html
25.01.2020  17:55           355 725 test-wasm.js
25.01.2020  14:59               461 test-wasm.js_plugin_import.cpp
25.01.2020  16:23             4 384 test-wasm.js_plugin_import.obj
25.01.2020  15:49               601 test-wasm.js_qml_plugin_import.cpp
25.01.2020  16:23             4 668 test-wasm.js_qml_plugin_import.obj
25.01.2020  14:52             1 099 test-wasm.pro
25.01.2020  15:25            22 523 test-wasm.pro.user
25.01.2020  17:55        20 759 738 test-wasm.wasm

Ура! Получилось. Наше тестовое приложение собралось. Бинарь wasm занимает 20 Мб. Не мало. Давайте попробуем открыть в браузере файл наш test-wasm.htm и…

Подведу итоги, как нужно собирать приложение Qt для 5.13.2 в Windows:

1. Необходимо установить Python. GNU SED и установить бинарные сборки WebAssembly через online installed Qt

2.

c:\emsdk\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit
set PATH="c:\Program Files (x86)\GnuWin32\bin";%PATH%
set PATH=c:\qt\5.13.2\mingw73_64\bin;%PATH%
set PATH=C:\Qt\Tools\mingw730_32\bin;%PATH%

Но Хабр не был бы Хабром, если бы я не попробовал собрать приложение WebAssembly и из последней версии Qt, которая имеется в настоящий момент 5.14.0. Надеюсь, меня дальше не будет ожидать точно такой же квест, как при сборке в версии 5.13.2.

Через онлайн инсталлер (MaintenanceTool.exe) ставим Qt WebAssembly для версии 5.14.0. Конфигурируем окружение и запускаем сборку.

Процесс идёт и…

Ничего не понятно. Как это? Для версии 5.13.2, я после танцев с бубном, смог собрать приложение, а для 5.14.0 это не получилось? А как же тогда они (Qt) собрали его?

… А мы же тоже можем собрать WASM Qt 5.14.0 из исходников? А почему бы и нет. Для этого нам требуется много места на жёстком диске, а так же хорошая нагрузка/загрузка для процессора:

echo PATH=c:\qtwasm514\bin;"C:\Program Files (x86)\GnuWin32\bin";c:\qt\Tools\mingw730_32\bin;%PATH%
c:\emsdk\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit
cd c:\Qt\5.14.0\Src
configure.bat -no-warnings-are-errors -xplatform wasm-emscripten -platform win32-g++ -nomake examples -prefix c:\qtwasm

В данном случае после сборки у нас будет установлен wasm в папку c:\qtwasm, и ещё нам не нужно собирать примеры (examples).Вывод конфигурирования

Building on: win32-g++ (i386, CPU features: none)
Building for: wasm-emscripten (wasm, CPU features: none)
Target compiler: clang 6.0.1
Configuration: cross_compile largefile release c++11 no-pkg-config reduce_exports static stl
Build options:
  Mode ................................... release
  Optimize release build for size ........ no
  Building shared libraries .............. no
  Using C standard ....................... C11
  Using C++ standard ..................... C++11
  Using ccache ........................... no
  Using precompiled headers .............. no
  Using LTCG ............................. no
  Target compiler supports:
  Build parts ............................ libs
Qt modules and options:
  Qt Concurrent .......................... no
  Qt D-Bus ............................... no
  Qt D-Bus directly linked to libdbus .... no
  Qt Gui ................................. yes
  Qt Network ............................. yes
  Qt Sql ................................. no
  Qt Testlib ............................. yes
  Qt Widgets ............................. yes
  Qt Xml ................................. yes
Support enabled for:
  Using pkg-config ....................... no
  udev ................................... no
  Using system zlib ...................... no
  Zstandard support ...................... no
Qt Core:
  DoubleConversion ....................... yes
    Using system DoubleConversion ........ no
  GLib ................................... no
  iconv .................................. yes
  ICU .................................... no
  Built-in copy of the MIME database ..... 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 ................................ no
    Qt directly linked to OpenSSL ........ no
  OpenSSL 1.1 ............................ no
  DTLS ................................... no
  OCSP-stapling .......................... 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:
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ yes
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    OpenGL ES 3.2 ........................ no
  Vulkan ................................. no
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. no
  libinput ............................... no
  INTEGRITY HID .......................... no
  mtdev .................................. no
  tslib .................................. no
  xkbcommon .............................. no
  X11 specific:
    XLib ................................. no
    XCB Xlib ............................. no
    EGL on X11 ........................... no
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. no
  LinuxFB ................................ no
  VNC .................................... yes
  Mir client ............................. no
Qt Sql:
  SQL item models ........................ yes
Qt Widgets:
  GTK+ ................................... no
  Styles ................................. Fusion Windows
Qt PrintSupport:
  CUPS ................................... no
Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. no
  OCI (Oracle) ........................... no
  ODBC ................................... no
  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
  SerialPort Support ..................... no
Further Image Formats:
  JasPer ................................. no
  MNG .................................... no
  TIFF ................................... yes
    Using system libtiff ................. no
  WEBP ................................... yes
    Using system libwebp ................. no
Qt QML:
  QML network support .................... yes
  QML debugging and profiling support .... yes
  QML tracing JIT support ................ no
  QML sequence object .................... yes
  QML list model ......................... yes
  QML XML http request ................... yes
  QML Locale ............................. yes
  QML delegate model ..................... yes
Qt Quick:
  Direct3D 12 ............................ no
  AnimatedImage item ..................... yes
  Canvas item ............................ yes
  Support for Qt Quick Designer .......... yes
  Flipable item .......................... yes
  GridView item .......................... yes
  ListView item .......................... yes
  TableView item ......................... yes
  Path support ........................... yes
  PathView item .......................... yes
  Positioner items ....................... yes
  Repeater item .......................... yes
  ShaderEffect item ...................... yes
  Sprite item ............................ yes
Qt Scxml:
  ECMAScript data model for QtScxml ...... yes
Qt Gamepad:
  SDL2 ................................... no
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) .... no
  WinRT advanced bluetooth low energy API (desktop & UWP) . no
Qt Sensors:
  sensorfw ............................... no
Qt Quick Controls 2:
  Styles ................................. Default Fusion Imagine Material Universal
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 ........................ no
    HERE ................................. yes
    Esri ................................. yes
    Mapbox ............................... yes
    MapboxGL ............................. no
    Itemsoverlay ......................... yes
QtXmlPatterns:
  XML schema support ..................... 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 ................. no
  DirectShow ............................. no
  Windows Media Foundation ............... no
Qt Tools:
  QDoc ................................... no
Qt WebEngineCore:
  Qt WebEngine Widgets ................... yes
  Qt WebEngine Qml ....................... yes
  Embedded build ......................... yes
  Full debug information ................. no
  Pepper Plugins ......................... no
  Printing and PDF ....................... no
  Proprietary Codecs ..................... no
  Spellchecker ........................... yes
  Native Spellchecker .................... no
  WebRTC ................................. no
  Use System Ninja ....................... no
  Geolocation ............................ yes
  WebChannel support ..................... yes
  Use v8 snapshot ........................ yes
  Kerberos Authentication ................ no
  Extensions ............................. no
  Support qpa-xcb ........................ no
  Building v8 snapshot supported ......... yes
  Use ALSA ............................... no
  Use PulseAudio ......................... no
  Optional system libraries used:
    re2 .................................. no
    icu .................................. no
    libwebp, libwebpmux and libwebpdemux . no
    opus ................................. no
    ffmpeg ............................... no
    libvpx ............................... no
    snappy ............................... no
    glib ................................. no
    zlib ................................. no
    minizip .............................. no
    libevent ............................. no
    jsoncpp .............................. no
    protobuf ............................. no
    libxml2 and libxslt .................. no
    lcms2 ................................ no
    png .................................. no
    JPEG ................................. no
    harfbuzz ............................. no
    freetype ............................. no
  Required system libraries:
    fontconfig ........................... no
    dbus ................................. no
    nss .................................. no
    khr .................................. no
    glibc ................................ no
  Required system libraries for qpa-xcb:
    x11 .................................. no
    libdrm ............................... no
    xcomposite ........................... no
    xcursor .............................. no
    xi ................................... no
    xtst ................................. no
Qt WebEngineQml:
  UI Delegates ........................... yes
  Test Support ........................... no

Note: Using static linking will disable the use of dynamically
loaded plugins. Make sure to import all needed static plugins,
or compile needed modules into the library.

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

Note: The following modules are not being compiled in this configuration:
    serialport
    3dcore
    3drender

WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.

Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation.
On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
On macOS, you can use Homebrew's llvm package.
On Windows, you must set LLVM_INSTALL_DIR to the installation path.

WARNING: host pkg-config not found

Qt is now configured for building. Just run 'mingw32-make'.
Once everything is built, you must run 'mingw32-make install'.
Qt will be installed into 'c:\qtwasm'.

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.

Собираем и устанавливаем:

mingw32-make
mingw32-make install

После того, как я пересобрал WASM Qt 5.14.0 и установил в папку c:\qtwasm и использовал этот путь, я смог собрать WebAssembly из 5.14.0 версии Qt.

Вывод 2.

Если хотите использовать Qt 5.14.0 WebAssembly, вам потребуется его пересобрать из исходников и использовать уже собранную вами версию.

Заключение

Qt WebAssembly достаточно интересная технология, которая появилась в Qt начиная с версии 5.12.

Примеры WebAssembly можно посмотреть онлайн на сайте Qt.

Однако при попытке сборки собственного проекта, я получил ошибки:

Поэтому при использованиии данной технологии обязательно нужно изучать о её ограничениях.

Сейчас не поддерживаются модули: qtmultimedia, qtwebview.

В настоящий момент WebAssembly работает в большей части в Desktop браузерах, а когда появится полная поддержка в мобильных устройствах не известно.

Для тех, кто дочитал до конца данную статью, но еще ни разу не пробовал Qt, Вы можете скачать онлайн установщик, выбрать опции MinGW и нужную версию Qt WebAssmbly. QtCreator установится по умолчанию и Вы сможете собрать своё первое приложение.

В завершении данной статьи я бы хотел бы рекомендовать пользователям попробовать собрать примеры из исходников Qt, из папки Src\qtcharts\examples и запустить их в браузере.

Чтобы запустить веб сервер можно использовать Python, и выполнить:
python -m http.server 8000 --bind 192.168.0.10 если у вас адрес в локальной сети у компьютера 192.168.0.10. Так же не забудьте открыть порт в Firewall и тогда можно пробовать с другого компьютера/устройства/смартфона открыть приложение через браузер.

Голосуйте, и приводите свои примеры использования лучшего GUI фреймворка для C++ Qt в комментариях.

Удачного Вам творчества и новых достижений!

Запуск (сборка) приложения Qt для Windows XP – 2compa.ru

Иногда может случиться такая ситуация, что необходимо скомпилировать и в будущем запустить ваше приложение, разработанное в среде Qt Creator в устаревшей Windows XP. Разберём в этой статье, как это сделать.

И вот, ваши дела шли чудесно, но в один день вам захотелось/понадобилось запустить ваше приложение в Windows XP. «Элементарно» — подумали вы, но тут не так всё просто. Перейдя на официальную вики Qt , в статью по поддержке платформ (https://wiki.qt.io/PlatformSupport), можно увидеть, что в таблице официальная поддержка Win Xp есть в версия Qt с 5.0 по 5.6.

Поэтому самым простым и действенным способом будем скачивание Qt, например, версии 5.5.1 (qt-opensource-windows-x86-mingw492-5.5.1.exe) с репозитория https://download.qt.io/archive/qt/5.5/5.5.1/ и установка на свой ПК (если у вас стоит более новая версия).

Будем использовать такую связку: Qt+MinGW 4.9.2 32 bit, что и укажем во время установки Qt.

После установки, запустим Qt и откроем проект и на экране появится следующий предупреждающий диалог (необходимо нажать кнопку «ок»):

Далее необходимо выбрать компилятор и нажать кнопку «Настроить проект». Если вдруг у вас после установки определился не тот компилятор, отладчик или комплект, то вы можете воспользоваться методикой из статьи http://2compa.ru/qt-creator/kak-ustanovit-mingw-7-3-0-32bit-dlja-qt-creator-5-12-0/ , где я рассказывал, как вручную настроить MinGW 7.3, но по такой же методике, вы сможете в параметрах сборки и запуска, настроить свой комплект Qt.

Добавим в файл .pro следующую строку:

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

Попробуем скомпилировать проект. В моём случае проект небольшой (2500 строк) и он удачно скомпилировался. Бинго! Программа запущена. В вашем случае компилятор может выдавать ошибки (из-за разности версий и меняющегося Qt-функционала), которые придётся исправлять. Для этого, пользуйтесь гуглом.

Небольшая оговорка: Qt 5.5.1 у меня почему-то не запустился на Win XP, но запустился на Win 7, а затем после того как я собрал все необходимые .dll, программа запустилась и на Win XP (с пакетом обновления 3).

Как собрать .dll в одном месте для программы, написанной в Qt, чтобы запустить на Win XP?

1 Вариант. Windeployqt

Для того, чтобы собрать все файлы .dll в одном месте, которые необходимы для запуска вашей программы, лучше всего воспользоваться инструментом windeployqt, находящемуся по пути

Диск:\Путь установки Qt\Версия Qt\mingw***_**\bin.

Чтобы это сделать откройте два окна проводника, в одном папку релиза вашего проекта, в котором оставьте просто .exe файл. А во втором окне путь с инструментом, указанным выше.

И перетащите файл с названием вашего проекта на файл windeployqt.exe. Далее пойдёт процесс копирования необходимых файлов в папку с исполняемым файлом.

Конечно, у этого инструмента есть недостаток. Недостаток заключается в том, что он копирует не все необходимые .dll и с высокой долей вероятности ваша программа при запуске может выдать системную ошибку, вроде такой:

Для исправления такой ошибки, нужно скопировать файл libgcc_s_dw2-1.dll в каталог с программой (этот файл находится по пути инструмента windeployqt). Соответственно, эту процедуру нужно сделать для всех ошибок такого рода. После этого, программа должна успешно запуститься по нажатию на исполняемый файл.

2 Вариант. LibraryCollector (раньше назывался DLLCollector)

Скачиваем DLLCollector или LibraryCollector (по моим ощущениям более старый DLLCollector работает стабильнее). Скачать LibraryCollector вы можете по следующей ссылке с киберфорума. А устаревшую DllCollector можете скачать по прямой ссылке с моего блога.

Запускаем утилиту (обязательно от имени администратора) и указываем пути:

name – путь к исполняемому файлу.

bin – путь к папке bin в папке mingw***_** по пути с Qt Creator.

plugins – путь к папке plugins в папке mingw***_** по пути с Qt Creator.

to – путь к папке, в которую будут копироваться dll и исполняемый файл.

Нажимаем кнопку «Run», ваша программа должна запуститься. Далее закройте программу и нажмите кнопку «Update». Далее вам необходимо выполнять действия в программе, чтобы утилита определила все файлы, необходимые для работы вашей программы, которые отобразятся в списке:

Закройте программу и нажмите кнопку «Copy». Все необходимые для работы .dll скопируются в папку с вашим исполняемым файлом. Поздравляю!

Небольшие ХАКИ для запуска приложения в WIN XP. Исправление ошибки « Не является приложением Win32».

Если вы используете Qt вместе с Visual Studio (а не компилятором MinGW) и пытаетесь развернуть свое приложение на компьютере под управлением Windows XP или Windows Server 2003, скорее всего, вы видите эту ошибку.

Эта ошибка не возникнет для Qt с Visual Studio 2010, но появляется при использовании Visual Studio 2012, 2013 или Visual Studio 2015.

Самый простой способ это исправить – добавить одну дополнительную строку в файл .pro вашего проекта. Второй способ – выполнить бинарное исправление файла .exe вашего приложения.

Небольшое примечание: Эта же ошибка («…не является приложением Win32») возникает при попытке запустить 64-разрядное приложение в 32-разрядной системе Windows XP или Windows 2003, поэтому убедитесь, что ваше приложение действительно 32-разрядное. Один из способов проверки разрядности: запустите приложение в Windows 7 или 10, запустите диспетчер задач, на вкладке процесса проверьте, что имя вашего приложения имеет суффикс «*32».

Для первого способа достаточно открыть .pro файл вашего проекта и добавить туда следующую строку:

QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01

Примечание: если вы компилируете 64-битный файл .exe (и, таким образом, нацелены на 64-битную Windows XP), вместо этого вам следует установить для QMAKE_LFLAGS_WINDOWS значение /SUBSYSTEM:WINDOWS,5.02.

Второй способ – более экзотический, для этого воспользуемся редактором двоичных / шестнадцатеричных файлов. Откройте файл .exe вашего приложения, перейдите почти к началу файла и отыщите шестнадцатеричную последовательность 06 00 00 00 00 00 00 00 (повторяется один раз). Эта строчка находится по адресу 0000130, но может находиться между 0000120 и 0000150. Замените её на 05 00 01 00 00 00 00 00.

Примечание: если это 64-битный файл .exe, вместо этого вы должны изменить строку на 05 00 02 00 00 00 00 00.

Сохраните exe файл и он должен запуститься. Специально для вас записал видео, как запустить exe вне QT:

Cобираем qt-4.8.7 и qt creator при помощи mingw-w64 на windows (10), бонусом настравиваем на работу с github

Пару слов о том для чего это понадобилось вообще: у меня была простая ситуация — не было быстрого интернета и был компьютер с начисто установленной windows 10. К тому же проект, который ковыряю, требует сборки как под 32 так и под 64 битную архитектуру, поэтому мне показалось что наличие Qt, одинаково сконфигуренного и скомпилированного под эти архитектуры будет только плюсом.

0) Желательно заранее отрубить службы Windows Search и Superfetch и защитник винды. Они на наших операциях будут только тормозить систему, а ресурсы нам скоро понадобятся. Кроме того очень полезно сделать языком ввода по умолчанию английский.

1) Создаем папку «C:\QT» — тут будут жить наши сборки.

2) Для начала нам конечно же понадобится сам компилятор mingw-w64. Качаем инсталлер тут.

3) Устанавливаем по очереди обе версии:

первая установка:

Version — 5.2.0 — последняя на момент написания статьи;

Architecture — i686 — сначала ставим 32 битную версию (пускай вас не пугает что оно не i386, i686 это Интел пентиум про и выше, сумеете запустить 2k винду на чем то более древнем — удачи!)

Threads — win32 — если не портируете исходники с юниксов лучше выбрать нативные;

Exeption — sjlj — мне нужно так, если вам нужны другие — бога ради;

Build revision — 1 опять же последняя на момент написания статьи;

Назначение выбрал «C:\mingw-w64-i686» ибо из Program Files могут быть проблемы с пробелами в путях у qt.

Вторая установка все то же самое кроме:

Architecture — x86_64;

Путь «C:\mingw-w64-x86_64»;

Я так же убрал галку «создать ярлыки», иначе они перезапишутся 64 битной версией, мне это неудобно.

Если не хотите плодить много папок в корне ставить можно в «C:\QT\mingw-w64-i686» и «C:\QT\mingw-w64-x86_64» соответвенно архитектурам, роли это не играет.

4) Качаем исходники бибилиотеки QT 4.8.7 тут

5) Распаковываем сам Qt (тут лучше заранее озаботится наличием программы 7zip ибо виндовый архиватор сначала будет распаковывать во временную папку, потом копировать из нее туеву хучу мелких файлов, идиот, а потом ещё и создаст дополнительную папку внутри с тем же именем) сразу в 2 копии «C:\QT\qt-4.8.7-mingw-w64-i686» и «C:\QT\qt-4.8.7-mingw-w64-x64» (вторая нужна на случай ошибок при конфигуре, гораздо быстрее переименовать копию и пустить фоном распаковываться ещё одну, чем ждать пока отработает mingw32-make confclean). Если не уверены в архиваторе проверяем чтобы в этих папках сразу были папки bin, util, src и т.д., если архиватор создал ещё одну вложенную — вытаскиваем содержимое на уровень выше.

6) Идем в свойства системы и меняем переменную PATH (надо же в моей 10-ке сделали нормальный интерфейс для этого) добавляем туда путь пока только к 32 битной версии компилятора, у меня это: «C:\mingw-w64-i686\mingw32\bin». Если вдруг у вас в PATH есть пути к другим компиляторам временно убираем их оттуда.

7) Запускаем cmd от админа (это важно) и вводим:

g++ -v

должна появится инфа о компиляторе, если этого не произошло значит компиль установлен неправильно, ищем ошибку на предыдущих шагах. Если вывелась информация проверяем, что мы ничего не напутали: у нас запускается действительно 32 битная версия, и что она именно та которую мы установили на предыдущих шагах, а не из оригинального mingw без w64 (это по сути разные проекты) или, прости господи, вижуал студии.

Если все нормально переходим в папку с Qt:

cd C:\QT\qt-4.8.7-mingw-w64-i586

запускаем там конфигур как-то так:

.\configure -debug-and-release -opensource -confirm-license -platform win32-g++ -graphicssystem raster -no-openssl -nis -iconv -system-proxies -no-freetype -plugin-sql-odbc -plugin-sql-sqlite -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde -qt-style-windowsce -qt-style-windowsmobile -qt-style-s60

в этом конфиге по максимому все что можно собрать без зависимостей. Мне openssl не очень нужен, иначе его нужно собрать заранее. Если критично время можно отключить примеры, не собирать дополнительные темы и odbc плагин. Справку по опциям можно получить так: «.\configure -help». Далее ждем несколько минут пока отработает конфигур, и запускаем компиляцию:

mingw32-make -j4

у меня 4 ядерный процессор по этому опция -j4 она обозначает делать компиляцию в 4 потока. Сразу оговорюсь, компиляция с этой опцией до конца не проходит, грохается на qtdeclarative с ошибкой копирования файла, видимо где то неправильно прописаны зависимости. Мне достаточно было запустить компиляцию после сбоя ещё раз. Ошибка кстати повторилась и на 64 битной версии. На core i5-3570 c 8-ю гигами оперы компиляция одной версии в 4 потока занимает почти 2 часа.

8) Если у вас медленный интернет, пока компилится сам Qt можно поставить на закачку qt creator 3.2.2 (это последняя версия, которая компилится на 4.8.x), ActivePerl-5.20.2 !32 битную версию! и msysgit !32 битную версию! Указанные тут верcии это последние на момент написания статьи, и, соответственно, те с которыми работал я. Если у вас что-то не пошло на более новых, попробуйте указанные мной. Предупрежу сразу, до сборки qtcreator ставить msysgit очень не желательно, креатор нормально не соберется если увидит в патче sh.exe, а для нормальной работы с гитом его как раз стоит ставить с прописыванием PATH.

9) Устанавливаем perl: я не ставил документацию и примеры, местом назначения сделал «C:\perlx86». Галку «Add perl to the PATH environment variable» не снимаем. После установки в командной строке (естественно не в той, в которой компилится Qt) пишем «perl -v», должна появится информация о версии.

10) Распаковываем qt creator в » C:\QT\qt-creator-opensource-src-3.2.2″, так же проверяем чтобы внутри не было вложенной папки, а сразу были папка bin и остальное.

11) Ждем когда компилируется qt. Никаких прямых сообщений что компиляция завершена успешно, не будет. У меня последним собрался ‘C:/QT/qt-4.8.7-mingw-w64-i586/demos/declarative/webbrowser’. Можно запустить qtdemo.exe для проверки, позапускать примеры. Снова открываем редактор переменных среды, дописываем в PATH «C:\QT\qt-4.8.7-mingw-w64-i586\bin». Опять же убеждаемся, что это единственный профиль qt в PATH. Проверяем себя, перезапустив командную строку и набрав «qmake -v».

12) Открываем блокном файл «C:\QT\qt-creator-opensource-src-3.2.2\src\libs\utils\tcpportsgatherer.cpp», находим строчку

#if __GNUC__ == 4 && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 2)

и меняем её на

#if __MINGW64_VERSION_MAJOR == 5 || (__GNUC__ == 4 && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 2))

13) Перезапускаем cmd опять же от админа. Собираем creator в новой папке:

mkdir C:\QT\qt-creator-3.2.2-x86

cd C:\QT\qt-creator-3.2.2-x86

qmake -r ../qt-creator-opensource-src-3.2.2/qtcreator.pro

mingw32-make release -j4

надеюсь, повторяться про опцию -j4 не надо.

14) Ждем окончания компиляции, запускаем qtcreator, убеждаемся что работает. Закрываем, настраивать в нем пока ещё нечего. Если очень жалко места на диске и оперативы, можно уже скомпиленный creator закинуть в папку с Qt (скопировать только папки bin, lib, share) и добросить в папку bin недостающие dll-ки из mingw. По человечески же, надо наоборот: убрать компилятор и Qt из PATH и докопировать в папку bin creator-а dll-ки из папок bin от Qt и компилятора.

15) Снова открываем редактор PATH убираем оттуда путь к скомпиленному Qt «C:\QT\qt-4.8.7-mingw-w64-i586\bin» и меняем путь к компилятору c «C:\mingw-w64-i686\mingw32\bin» на «C:\mingw-w64-x86_64\mingw64\bin». Опять же перезапускаем cmd от админа и проверяем что нам выдаст

g++ -v

если все в норме, делаем все то же самое что и в шаге 6, только путь у нас теперь будет другой.

cd C:\QT\qt-4.8.7-mingw-w64-x86_64

.\configure -debug-and-release -opensource -confirm-license -platform win32-g++ -graphicssystem raster -no-openssl -nis -iconv -system-proxies -no-freetype -plugin-sql-odbc -plugin-sql-sqlite -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde -qt-style-windowsce -qt-style-windowsmobile -qt-style-s60

mingw32-make -j4

16) Теперь, пока компилится 64 битная версия Qt, можно заняться и гитом (джитом, не знаю какая транскрипция правильнее). Устанавливаем msysgit v2.6.3 !32 битную версию! запускаем инсталлер сразу от админа, иначе он поставит нам версию только для локального пользователя, оно нам не надо. Путь я выбрал «C:\msysGitX86». На следующем шаге можно ткнуть галку, которая создаст ярлык к консоли на рабочем столе. Eщё через шаг выбираем «Use git from the Windows Command Promt», Я еще выбрал «Use Windows` default console window» для терминала, остальное на любителя или по умолчанию.

На blogspot есть замечательная статья о том как подружить qt creator и github. Однако в ней не даны инструкции что делать если винт на котором все это настроено сгорел синим пламенем. Попробуем восполнить этот пробел.

17) Запускаем git-bash от админа, с ярлыка который нам создал установщик

делаем настройки, конечно же подставив ту почту на которую зарегистрирован аккаунт на гитхабе и свой никнейм

git config --global user.email "[email protected]"

git config --global user.name "myGithubNick"

git config --global push.default simple

генерим новую пару ключей для ssh:

ssh-keygen -t rsa -C "[email protected]"

3 раза жмакаем enter, заходим браузером в свой профиль на гитхабе, удаляем старый ключ (если конечно не собираемся им пользоваться, а он утрачен как у меня) и добавляем новый.

пробуем склонировать существующий репозиторий:

mkdir C:\\myproject

cd C:\\myproject

git clone [email protected]:myGithubNick/mysuperproject.git

обратите внимание что пользователь «git», а не никнейм; никнейм указывается уже после двоеточия. Кроме того никаких https:// или git:// перед адресом быть не должно, если получаете сообщение, что нужно использовать https, значит гитхаб не опознал в вас владельца репозитория, ищите проблемы с ключами или ssh. Если все в порядке, гит сделает нам копию репозитория в папке mysuperproject. Зайдем в нее и проверим что репозиторий рабочий, и у нас есть все права

cd ./mysuperproject

git remote -v

touch .testfile.txt

git add .testfile.txt

git commit -m test

git push

git reset --hard HEAD~1

git push -f

естественно ошибок быть не должно, если есть значит что-то не так с установкой гита или ssh.

18) Дожидаемся пока скомпилится 64 битная версия Qt. Убираем из PATH 64 битный компилятор, либо совсем, либо меняем на 32 битную версию, это уже как удобнее. Открываем блокнотом «C:\QT\qt-4.8.7-mingw-w64-x86_64\mkspecs\win32-g++\qmake.conf», сразу после комментов дописываем «QMAKE_TARGET.arch += x86_64», сохраняем, закрываем.

19) Снова запускаем creator (если сейчас он перестал запускаться, значит что-то лишнее есть в path или не все библиотеки мы ему подложили).

Открываем Инструменты(Tools)->Параметры(Options). Сразу же в разделе Среда(Environment) на вкладке Основные(General) нас просят ввести путь к командe patch, можно использовать «C:\msysGitX86\usr\bin\patch.exe». Идём во Внешние утилиты(External Tools) — правим пути.

Переходим в раздел Сборка и запуск(Build & Run), переходим на вкладку Отладчики(Debuggers), нажмаем Добавить(Add), название даем: «mingw32-w64-gdb», путь: «C:\mingw-w64-i686\mingw32\bin\gdb.exe». Снова жмем Добавить(Add), название даем: «mingw64-w64-gdb», путь: «C:\mingw-w64-x86_64\mingw64\bin\gdb.exe».

Переходим на вкладку Компиляторы(Compilers), нажмаем Добавить(Add) ->MinGW, если нет определенных в path имя даем «MinGW32-W64» и путь «C:\mingw-w64-i686\mingw32\bin\g++.exe» (можно и копию сделать для удобства, не страшно). Добавляем ещё один: имя «MinGW64-W64» путь «C:\mingw-w64-x86_64\mingw64\bin\g++.exe», ABI выбираем 64битные, если есть.

Переходим на вкладку Профили Qt (Qt versions), Если 32 битного профиля нет в path добавляем сначала его «C:\QT\qt-4.8.7-mingw-w64-i586\bin\qmake.exe». Потом добавляем 64 битный «C:\QT\qt-4.8.7-mingw-w64-x86_64\bin\qmake.exe». Имена у меня «Qt 4.8.7 mingw-w64 i586» и «Qt 4.8.7 mingw-w64 x86_64» соответвенно.

Переходим на вкладку Комплекты(kits), сначала настраиваем профиль Desktop:

Название:Desktop

Имя в файловой системе: x86

Тип устройства:Desktop

Устройство: Локальный ПК

Sysroot: — оставляем пустым

Компилятор: MinGW32-W64

Отладчик: mingw32-w64-gdb

Профиль Qt: Qt 4.8.7 mingw-w64 i586

Добавляем ещё один

Название:Desktop 64

Имя в файловой системе: x86_64

Тип устройства:Desktop

Устройство: Локальный ПК

Sysroot: — оставляем пустым

Компилятор: MinGW64-W64

Отладчик: mingw64-w64-gdb

Профиль Qt: Qt 4.8.7 mingw-w64 ч86_64

сохраняем, применяем, пробуем что-нибудь собрать.

Вот пожалуй и все что вспомнил по данной теме.

Кстати небольшой хак: если нужно незначительно переконфигурить уже собранную сборку, ну например openssl вы решили добавить или плагин к какому-нить мускулю не собрался, а 2-3-4 часа ждать пока все перекомпилиться ни разу не улыбается, делаем так: выставляем системное время на минут 10-15 раньше чем последний раз конфигурили сборку, переконфигуриваем, возвращаем время на настоящее. Блокнотом изменяем тот(те) мейкфайл(ы) который(е) затрагивает(ют) наши изменения и запускаем мейк, если не ошиблись с мейкфайлами (на самом деле если знать из чего состоит Qt, и что от чего зависит, ошибится трудно) перекомпилится только тот кусок который нам нужен.

Установка окружения для Windows

Краткая инструкция по установке Visual Studio, Qt SDK, а также других инструментов и библиотек


Установка Visual Studio 2017

Microsoft предоставляет несколько редакций Visual Studio: большинство из них платные, но мы будем использовать бесплатную редакцию — Community Edition.

Редакция Community Edition предназначена для индивидуальных разработчиков, обучающихся и для разработчиков OpenSource проектов. Для коммерческой разработки в команде потребуются другие редакции либо среда MonoDevelop.

Загрузите онлайн-инсталлятор Visual Studio 2017 Community Edition: visualstudio.com/downloads

После загрузки запустите (на медленных машинах запуск может быть долгим).
В установщике выберите один компонент — “Разработка классических приложений на C++”:

На вкладке языковых пакетов уберите пакет “Русский”, выберите “Английский” — с англоязычным интерфейсом гораздо легче найти решение какой-либо проблемы в Интернете:

Запустите установку Visual Studio. Процесс установки может занять 1-2 часа.

После установки Visual Studio вы можете установить плагины, загрузив их с сайта visualstudio и запустив:

Установка Git

Git — это OpenSource система контроля версий, представленная пакетом инструментов командной строки.
Скачайте и установите Git для Windows: https://git-scm.com/download/win

Для более комфортной работы с git вы можете установить какой-нибудь графический клиент для Git:

  • Source Tree (https://www.sourcetreeapp.com/)
  • Tortoise Git (https://tortoisegit.org/)
  • клиент для работы с Github (https://desktop.github.com/).

Установка Qt

Загрузить Qt 5.10 можно по адресу download.qt.io/archive/qt/5.10/5.10.1/ (файл “qt-opensource-windows-x86-5.10.1.exe”). После загрузки пройдите через стандартные шаги установщика.

Чтобы избежать регистрации на сайте Qt Project, вы можете просто стереть email в соответствующем окне, и кнопка Skip станет активной.

При установке Qt потребуется установить два компонента: Qt для VS2017 в x64 версии и интеграцию с CDB для QtCreator:

Кроме того, потребуется плагин к Visual Studio для разработки на Qt, который можно загрузить на download.qt.io/official_releases/vsaddin/ (файл “qt-vsaddin-msvc2017-2.2.0.vsix”).

Установка CMake

Для сборки примеров потребуется CMake. Свои работы также рекомендуется делать с помощью CMake.

  • Скачайте Cmake с официального сайта
  • При установке не забудьте поменять опцию, чтобы путь к CMake был добавлен в переменную PATH

Переменные окружения, такие как PATH, передаются приложению при старте. Если вы поменяли переменную PATH, изменения вступят в силу после перезапуска программ.

Установка и использование vcpkg

Подробное описание vcpkg и список пакетов можно найти здесь: blogs.msdn.microsoft.com/vcblog/2016/09/19/vcpkg-a-tool-to-acquire-and-build-c-open-source-libraries-on-windows

Пакетный менеджер vcpkg распространяется в исходниках и собирается на машине разработчика. Для сборки потребуется установленная Visual Studio с инструментами C++ разработчика.

Порядок установки описан в консольных командах:

:: Клонируем репозиторий vcpkg (ветка master)
git clone https://github.com/Microsoft/vcpkg

:: Переходим в каталог клона репозитория
cd vcpkg

:: Выполняем скрипт для сборки vcpkg
powershell -exec bypass scripts\bootstrap.ps1
:: Теперь в корне репозитория лежит vcpkg.exe, который можно вызывать
::  из каталога либо добавить в переменную окружения PATH.

После того, как вы получили vcpkg.exe, вы можете устанавливать пакеты командой install.

В частности, нам потребуется установить GLBinding и GLM:

vcpkg install glbinding:x86-windows glm:x86-windows

В команде, представленной выше, имена пакетов перечисляются по порядку, а в качестве суффикса используется так называемый “триплет”: имя_пакета:триплет.

  • Имя пакета задаёт одно из множества имён доступных библиотек, полный список есть в блоге Visual C++ Team
  • Триплет задаёт архитектуру и режим сборки

Доступные триплеты:

x86-windows
x64-windows-staticx
x86-windows
x86-windows-static
arm-uwp
x64-uwp
x86-uwp

Для данного курса рекомендуются триплеты x86-windows для сборки 32-битной версии программы и x64-windows для сборки 64-битной версии. Вместо явного указания триплета для каждой библиотеки можно разом указать триплет для всех:

vcpkg --triplet x86-windows glbinding glm

Последняя, но крайне важная деталь: включите автоматическую интеграцию пакетов vcpkg во все проекты Visual C++:

:: Включаем интеграцию во все проекты Visual C++ в системе.
:: При первом запуске нужны права администратора.
vcpkg integrate install

:: Удаляем интеграцию - если она вам помешала.
vcpkg integrate remove

Версия Qt 5.3 доступна для загрузки / Хабр

Итак, давайте посмотрим, что нового в этом релизе:

Поддержка новых платформ

Бета-версия Qt для Windows Runtime

Qt для Windows Runtime перешла в стадию поддерживаемой бета-версии, что означает возможность запуска приложений не только на Windows Phone, но и на планшетах и настольных компьютерах.
Это значит, что теперь вы можете использовать Qt на:

  • Всех компьютерах и планшетах, работающих на Windows 8.1, где используется Modern UI
  • ARM планшетах на WinRT, таких как Microsoft Surface
  • Смартфонах на Windows Phone 8

Приложения, разработанные с использованием Qt могут быть добавлены в Windows (Phone) Store.
Инструменты для поддержки этой платформы уже интегрированы Qt Creator, что позволяет заливать программы напрямую на устройство. Узнать больше можно из видео по ссылке.

Официальная поддержка QNX 6.6 и QNX 6.5 SP1

Также добавлена официальная поддержка последней версии QNX Neutrino 6.6, однако доступна она только в платной версии Qt Enterprise.

Новые функции

QQuickWidget

Если раньше было строгое разделение между интерфейсами на Qt Widget и Qt Quick, и нужно было выбрать что-то одно, то теперь границы начинают стираться. С появлением класса QQuickWidget стало возможным встраивать компоненты Qt Quick в приложения, основанные на QWidget. Такой подход позволяет легко добавлять интерактивные элементы в традиционные приложения.

Компилятор Qt Quick

В платную версию Qt Enterprise добавлен компилятор Qt Quick, преобразующий соответствующие файлы в нативный код. Не удивительно, что такой прием позволяет значительно поднять производительность на платформах (iOS и WinRT), где не используется JIT. С другой стороны, из-за того, что парсинг интерфейсов происходит во время компиляции, удалось ускорить запуск приложений. Еще одной полезной особенностью такого подхода будет защита исходного кода, который сейчас находится внутри приложения в открытом виде.

Purchasing API

Добавлена поддержка in-app purchases — важнейшей функции в деле монетизации приложения. Для упрощения использования таких покупок в Qt приложениях было добавлено специализированное Purchasing API. Qt Purchasing API доступно только в платной Enterprise версии, на сегодня заявлена поддержка Android (Google Play) и iOS (App Store). В дальнейшем ожидается расширение поддерживаемых платформ, включая WinRT (Windows Store / Windows Phone Store), Mac App store. Еще одним направлением в будущем может стать поддержка встраивания рекламы.

Веб-сокеты и облака

В Qt 5.3 также добавлено API для работы с веб-сокетами, что позволяет использовать соответствующую технологию как из C++, так и из QML. Есть возможность создавать как клиентские, так и серверные приложения. Больше того, если задействовать Qt Cloud Services, можно легко развернуть, например, сервер рассылки push-уведомлений или организовать многопользовательскую среду. Больше информации можно найти на qtcloudservices.com.

Остальное

В Qt Quick Controls добавлен стандартный элемент календаря (Calendar), родные диалоговые окна и возможность кастомизации панели меню. Qt Positioning API теперь доступно на Android и iOS, а Qt Bluetooth API пока только на Android. Была проведена большая работа по расширению возможностей модуля Qt Print Support.

Послесловие

Очевидно, что бизнес-модель Digia не может быть такой же, как как во времена Nokia, ведь у них разные задачи и возможности. С каждым релизом это проявляется все ярче: с одной стороны очень интенсивно идет портирование фреймворка на новые платформы, с другой — все больше функций становятся доступны только в платной версии. Цена на нее, прямо скажем, совсем не демократична, за месяц подписки на разработку для мобильных платформ просят 150$, за все платформы — 400$. При этом минимальный срок подписки — 3 месяца. К сожалению, этот релиз не принес сколько-нибудь значимых изменений в плане разработки стандартных приложений для мобильных ОС, разве что Message dialog на Android стал выглядеть нативно, остальные всё ещё печальны.

Скачать свежий SDK можно здесь.

Обзор возможностей мобильной разработки на QML.

Полный чейнжлог.

Официальный пост в блоге Digia.

Qt для Windows | Qt 5.15

Qt поддерживает различные платформы Windows обширно и хорошо.

Прежде чем начать, убедитесь, что ваша среда разработки соответствует требованиям.

Чтобы загрузить и установить Qt для Windows, следуйте инструкциям на странице «Начало работы с Qt».

Поддерживаемые конфигурации

Поддерживаются следующие конфигурации.

Операционная система Архитектура Компилятор Примечания
Windows 10 x86 и x86_64 MSVC 2019 , MSVC 2017, MinGW 8.1
Windows 8.1 x86 и x86_64 MSVC 2019, MSVC 2017, MinGW 8.1
Windows 7 x86 и x86_64 MSVC 2019, MSVC 2017, MinGW 8.1 MinGW-сборки GCC 8.1.0 (x86)

Развертывание и другие проблемы

На страницах ниже описаны конкретные проблемы и рекомендации по созданию приложений Windows.

Куда идти дальше

Мы приглашаем вас изучить остальную часть Qt. Мы подготовили обзоры, которые помогут вам решить, какие API использовать, а наши примеры демонстрируют, как использовать наш API.

Яркий и активный сайт сообщества Qt, http://qt.io, содержит вики, форум, а также дополнительные учебные руководства и презентации.

Инструменты Visual Studio

Qt VS Tools позволяет программистам создавать, строить, отлаживать и запускать приложения Qt из не-Express версий Microsoft Visual Studio 2013 и более поздних версий.Надстройка содержит мастеров проектов, поддержку импорта / экспорта проектов Qt, интегрированный менеджер ресурсов Qt и автоматическую настройку сборки для компилятора метаобъектов Qt, компилятора пользовательского интерфейса и компилятора ресурсов.

© 2020 Компания Qt Company Ltd.
Включенная сюда документация является собственностью
их владельцы. Представленная здесь документация лицензирована в соответствии с условиями лицензии GNU Free Documentation License версии 1.3, опубликованной Free Software Foundation.Qt и соответствующие логотипы являются товарными знаками компании Qt Company Ltd. в Финляндии и / или других странах по всему миру. Все остальные товарные знаки являются собственностью
их владельцев.

.

Qt для Windows — Требования

На этой странице описаны необходимые библиотеки и окружение для Qt для Windows.

Библиотеки

Следующие сторонние библиотеки могут использоваться при запуске приложений Qt 5 в Windows.

  • OpenSSL Toolkit: Qt может использовать OpenSSL для поддержки связи Secure Socket Layer (SSL).
  • ICU: Qt 5 может использовать библиотеку ICU для расширенной поддержки UNICODE и глобализации (см. QTextCodec, QCollator :: setNumericMode ()).

    Во время компиляции include и lib Папки установки ICU должны быть добавлены к переменным среды INCLUDE и LIB . Во время выполнения библиотеки DLL ICU необходимо найти, скопировав библиотеки DLL в папку приложения или добавив папку bin установки ICU в переменную среды PATH .

  • ANGLE: эта библиотека преобразует вызовы API OpenGL ES 2.0 в вызовы DirectX 11 или DirectX 9 (в зависимости от доступности), устраняя необходимость установки графических драйверов на целевые машины.

SSL

Поддержка связи по протоколу Secure Sockets Layer (SSL) обеспечивается OpenSSL Toolkit, который необходимо приобретать отдельно. Загрузите последнюю версию набора инструментов, поддерживаемую Qt.

Qt можно настроить для использования OpenSSL тремя способами:

  • Qt Network загружает библиотеки OpenSSL (DDL) при первой необходимости во время выполнения. Если он не найден, приложение продолжает работать, но не может обрабатывать соединение SSL.

    Все официальные двоичные сборки Qt используют эту конфигурацию.

    Библиотеки OpenSSL ищутся сначала в каталоге исполняемого файла, затем в системном каталоге Windows (обычно C: \ Windows \ system32 ) и, наконец, во всех каталогах, перечисленных в переменной среды PATH .

  • Qt Network связывает с библиотеками OpenSSL. Если их не удается найти во время загрузки, приложение не запускается.
  • Qt Network компилируется со статической версией библиотек OpenSSL, и OpenSSL становится частью библиотеки Qt5Network.

Если вы компилируете Qt самостоятельно, вы можете настроить, как Qt использует OpenSSL, установив флаги конфигурации -openssl / -openssl-runtime или -openssl-connected .

Если OpenSSL не найден в обычных каталогах включения и библиотеки компилятора, вы можете установить аргументы конфигурации OPENSSL_PREFIX или OPENSSL_INCDIR и OPENSSL_LIBDIR . Если OPENSSL_PREFIX установлен, OPENSSL_INCDIR по умолчанию OPENSSL_PREFIX / включает и OPENSSL_LIBDIR до OPENSSL_PREFIX / lib .

Фактические библиотеки для связывания можно настроить, задав аргументы конфигурации OPENSSL_LIBS , OPENSSL_LIBS_DEBUG и OPENSSL_LIBS_RELEASE .

  • Чтобы загрузить OpenSSL во время выполнения, установите аргумент конфигурации -openssl-runtime . Qt попытается найти openssl / ssl.h и openssl / opensslv.h в пути включения компилятора по умолчанию. Вы можете указать дополнительный подключаемый каталог, установив OPENSSL_INCDIR .

    Например:

     configure -openssl-runtime OPENSSL_INCDIR = "C: \ Program Files \ OpenSSL-Win64 \ include" 
  • Чтобы связать сеть Qt с библиотеками OpenSSL, установите аргумент конфигурации -openssl-connected . Используйте переменную OPENSSL_PREFIX , чтобы позволить Qt правильно найти и построить против вашей установки OpenSSL:

    Например:

     configure -openssl-connected OPENSSL_PREFIX = "C: \ Program Files \ OpenSSL-Win64" 
  • Чтобы связать сеть Qt со статической версией библиотек OpenSSL, установите аргумент -openssl-connected и установите OPENSSL_PREFIX или OPENSSL_INCDIR и OPENSSL_LIBDIR .Кроме того, вам, вероятно, потребуется установить аргументы конфигурации OPENSSL_LIBS , OPENSSL_LIBS_DEBUG , OPENSSL_LIBS_RELEASE , чтобы Qt правильно компоновался с вашей статической сборкой библиотек OpenSSL.

    Например:

     установить OPENSSL_DIR = C: \ Program Files \ OpenSSL-Win64
    configure -openssl-connected OPENSSL_INCDIR = "% OPENSSL_DIR% \ include" OPENSSL_LIBDIR = "% OPENSSL_DIR% \ lib \ VC \ static" OPENSSL_LIBS = "- lWs2_32 -lGdi32 -lAdvapi32" OPENSSLIBDIBD_LISSL_DINSSI_Crypt32 "OPENSSL_DIB_Crypt32" = "- llibssl64MD -llibcrypto64MD" 

См. Раздел Классы Secure Sockets Layer (SSL) для дальнейших инструкций по Qt с поддержкой SSL.

ICU

Начиная с Qt 5.3 и новее, configure по умолчанию больше не связывает Qt Core с библиотеками ICU. Это значительно уменьшает размер автономного пакета приложения.

Разрешение Qt Core использовать библиотеки ICU, однако, имеет следующие преимущества:

Чтобы явно разрешить использование ICU в Qt Core, передайте -icu в configure :

Драйверы графики

Для работы Qt Quick 2 — графический драйвер, предоставляющий OpenGL 2.Требуется 1 или выше. Драйвером по умолчанию для Windows является OpenGL 1.1. Qt включает версию проекта ANGLE, которая включена в установщики Windows Qt. ANGLE реализует API OpenGL ES 2.0 поверх DirectX 11 или DirectX 9.

ANGLE требует, чтобы при сборке Qt был установлен DirectX SDK. Если используется MSVC, DirectX SDK будет предоставлен Windows SDK. В этом случае вам понадобится как минимум Windows SDK 10. Для сборок MinGW необходимо установить DirectX SDK, предоставляемый Microsoft.

ANGLE выбирает серверную часть рендеринга в зависимости от доступности. DirectX 11 обычно предпочтительнее. Однако некоторые видеокарты могут не полностью поддерживать его. В этих случаях переменная окружения QT_ANGLE_PLATFORM (представленная в Qt 5.4) может использоваться для управления серверной частью рендеринга. Возможные значения: d3d11 , d3d9 и warp .

Чтобы использовать пользовательскую версию ANGLE, установите переменную среды ANGLE_DIR так, чтобы она указывала на исходное дерево ANGLE перед сборкой Qt.

Если вы установили дополнительные драйверы OpenGL от поставщика оборудования, вы можете рассмотреть возможность использования этой версии OpenGL вместо ANGLE. Чтобы использовать OpenGL, передайте параметры командной строки -opengl desktop сценарию настройки.

 настроить -opengl desktop 

Чтобы использовать эмулятор OpenGL ES 2.0 вместо ANGLE, используйте параметры конфигурации: -opengl es2 -no-angle .

 настроить -opengl es2 -no-angle 

Драйверы графической системы с динамической загрузкой

В дополнение к конфигурации времени сборки Qt поддерживает выбор и загрузку реализации OpenGL во время выполнения.Чтобы использовать этот режим, передайте -opengl dynamic скрипту настройки.

 настроить -opengl dynamic 

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

Примечание: Комбинирование -opengl dynamic с -static также возможно, но имейте в виду, что ANGLE не будет статически связан с приложениями в этом случае, он все равно будет построен как разделяемая библиотека.

Эта конфигурация является наиболее гибкой, так как никакие зависимости или предположения о реализации OpenGL жестко не запрограммированы во время сборки. Это обеспечивает надежное развертывание приложений. Когда данная среда не может обеспечить надлежащую реализацию OpenGL 2.0, она автоматически возвращается к ANGLE. Этот запасной вариант будет полностью прозрачен для приложения и позволит Qt Quick или другому коду OpenGL функционировать путем преобразования в Direct3D. Такой откат может, например, иметь место на ПК с Windows 7 без установленных дополнительных графических драйверов.На других машинах, где имеется достаточная поддержка OpenGL, будут использоваться обычные настольные драйверы OpenGL. Кроме того, в будущем могут быть доступны чисто программные реализации OpenGL в качестве дополнительных резервных средств, позволяющих запускать приложения Qt Quick без графического процессора.

При настройке с -opengl dynamic ни Qt, ни приложения, созданные с использованием qmake , не будут связываться с библиотеками opengl32 (стандартный настольный OpenGL) или QtANGLE. Вместо этого во время выполнения выбирается соответствующая библиотека.По умолчанию Qt определяет, предоставляет ли система opengl32.dll функции OpenGL 2. Если они присутствуют, используется opengl32.dll, в противном случае будут использоваться библиотеки ANGLE (libEGL.dll и libGLESv2.dll). В случае отсутствия библиотек ANGLE или сбоя инициализации по какой-либо причине предпринимается попытка выполнить дополнительный откат, пытаясь загрузить opengl32sw.dll . Подробнее см. Ниже.

Механизм загрузки можно настроить с помощью переменной среды QT_OPENGL и следующих атрибутов приложения:

  • Qt :: AA_UseDesktopOpenGL Эквивалентно настройке QT_OPENGL на рабочий стол .
  • Qt :: AA_UseOpenGLES Эквивалентно установке QT_OPENGL на угол .
  • Qt :: AA_UseSoftwareOpenGL Эквивалентно установке QT_OPENGL в программное обеспечение .

Когда определенная конфигурация запрашивается явно, при запуске приложения проверки не выполняются, то есть предоставленный системой opengl32.dll не будет проверяться.

Динамическая загрузка оказывает значительное влияние на приложения, которые содержат собственные вызовы OpenGL: они могут не связываться, поскольку qmake больше не добавляет opengl32 автоматически.lib или libGLESv2.lib. Вместо этого ожидается, что приложения будут использовать функции OpenGL через класс QOpenGLFunctions. Таким образом, прямая зависимость от библиотеки OpenGL удаляется, и все вызовы во время выполнения будут перенаправлены на реализацию, выбранную Qt.

Приложения, которым требуется определенная реализация OpenGL (например, настольный OpenGL из-за использования функций, предоставляемых OpenGL 3.0 или выше), должны установить атрибуты приложения Qt :: AA_UseOpenGLES или Qt :: AA_UseDesktopOpenGL до создания экземпляра QGuiApplication или QApplication.Когда эти атрибуты установлены, никакие другие реализации OpenGL не рассматриваются. Кроме того, при желании такие приложения могут выполнять прямые вызовы функций OpenGL, добавляя opengl32.lib в свои файлы проекта .pro: LIBS + = opengl32.lib (Visual Studio) или LIBS + = -lopengl32 ( MinGW). Результат, с точки зрения приложения, эквивалентен конфигурации сборки -opengl desktop Qt.

Qt :: AA_UseSoftwareOpenGL является особенным в том смысле, что он попытается загрузить реализацию OpenGL с нестандартным именем.Имя по умолчанию — opengl32sw.dll . Это позволяет поставлять программную реализацию OpenGL, например, сборку Mesa с llvmpipe под этим именем. Если необходимо, имя файла можно переопределить, установив переменную среды QT_OPENGL_DLL .

Можно предоставить файл конфигурации в формате JSON, определяющий, какую реализацию OpenGL использовать в зависимости от видеокарты и версии драйвера. Местоположение задается переменной окружения QT_OPENGL_BUGLIST .Относительные пути разрешаются с использованием QLibraryInfo :: SettingsPath или QStandardPaths :: ConfigLocation . В файле используется формат списка ошибок драйвера, используемый в The Chromium Projects. Он состоит из списка записей, каждая из которых определяет набор условий и списка ключевых слов функции. Как правило, идентификатор устройства и идентификатор поставщика используются для соответствия конкретной видеокарте. Их можно найти в выходных данных инструмента qtdiag или dxdiag .

Следующие ключевые слова функций актуальны для выбора реализации OpenGL:

  • disable_desktopgl — отключает OpenGL.Это гарантирует, что Qt не пытается использовать обычный OpenGL (opengl32.dll), и что он сразу же запускается с ANGLE. Это полезно для предотвращения сбоя приложения из-за плохих драйверов OpenGL.
  • disable_angle — Отключает УГОЛ. Гарантирует, что Qt не пытается использовать ANGLE (и, следовательно, Direct3D).
  • disable_d3d11 — Отключает растеризатор D3D11 в УГОЛ. Вместо этого сначала пробуется следующий вариант рендеринга D3D. Порядок по умолчанию: D3D11, D3D9, WARP, эталонная реализация.
  • disable_d3d9 — Отключает растеризатор D3D9 в ANGLE
  • disable_rotation — всегда заставляет приложение работать в альбомной ориентации. Он применяется только к OpengGL и не действует при использовании ANGLE или программных реализаций OpenGL. Это предназначено для водителей, у которых есть проблемы с вращением. Это ключевое слово функции было введено в Qt 5.6.
  • disable_program_cache — Отключить сохранение двоичных файлов шейдерных программ на диске. Это ключевое слово функции было введено в Qt 5.12.

Пример файла выглядит так:

 {
"записи": [
{
  "id": 1,
  "description": "Отключить D3D11 на старых драйверах nVidia",
  "Операционные системы": {
    "тип": "победа"
  },
  "vendor_id": "0x10de",
  "device_id": ["0x0DE9"],
  "driver_version": {
    "op": "<=",
    "значение": "8.17.12.6973"
  },
  "функции": [
    "disable_d3d11"
  ]
},
... 

Если QT_OPENGL_BUGLIST не указан, будет использоваться встроенный список. Обычно сюда входят некоторые старые, менее функциональные видеокарты с набором disable_desktopgl , чтобы предотвратить использование Qt их нестабильных реализаций OpenGL рабочего стола и вместо этого сразу же вернуться к ANGLE.

На практике ожидается, что наиболее распространенными комбинациями будут следующие:

  • disable_desktopgl - Если система поддерживает OpenGL 2.0 или новее, но известно, что драйвер нестабилен и подвержен сбоям.
  • disable_desktopgl , disable_angle - когда ускоренный путь не требуется. Это гарантирует, что единственный вариант, который Qt пробует, - это программный растеризатор (opengl32sw.dll). Может быть полезен в виртуальных машинах и приложениях, которые развернуты в большом количестве старых систем.
  • disable_d3d11 , disable_d3d9 - Когда известно, что параметры ускоренного D3D нестабильны и требуется WARP (если он доступен). Может быть полезно в виртуальных машинах.

Поддерживаемые ключи для сопоставления данной карты или драйвера следующие. Обратите внимание, что некоторые из них относятся к Qt.

  • os.type - Операционная система: win , linux , macosx , android
  • os.version - версия ядра
  • ос.release - указывает список выпусков операционной системы в Windows: xp , vista , 7 , 8 , 8.1 , 10 .
  • vendor_id - Производитель из идентификатора адаптера
  • device_id - Список идентификаторов устройств PCI.
  • driver_version - Версия драйвера из идентификатора адаптера
  • driver_description - Соответствует, когда значение является подстрокой описания драйвера из идентификатора адаптера
  • gl_vendor - Соответствует, когда значение является подстрокой строки GL_VENDOR

Чтобы отключить все черные списки, установите для переменной среды QT_NO_OPENGL_BUGLIST любое значение.Это пропустит чтение любых файлов конфигурации и вместо этого будет предполагать, что ничего не отключено, независимо от драйвера или ОС.

Примечание: Хотя обычно не требуется, QT_NO_OPENGL_BUGLIST может стать актуальным в определенных виртуализированных средах с несколькими, возможно виртуальными, графическими адаптерами. Если журналы из таких категорий, как qt.qpa.gl, показывают, что обнаружение драйвера и видеоадаптера приводит к неправильному отключению OpenGL, рекомендуется установить эту переменную среды, чтобы приложение могло нормально работать.Эта переменная среды была введена в Qt 5.15.

Построение из источника

Эти инструменты не нужны для запуска приложений Qt 5, но они необходимы для сборки Qt 5 из исходников.

  • ActivePerl - установите последнюю версию ActivePerl (страница загрузки) и добавьте место установки в свой PATH .
  • Python - установите Python отсюда и добавьте место установки в свой PATH .

Примечание: Убедитесь, что исполняемый файл perl из ActivePerl находится в пути до исполняемого файла perl, предоставленного msysgit, поскольку последний устарел.

ANGLE зависит от этих дополнительных инструментов из проектов GnuWin32 и Win flex-bison, которые для вашего удобства предоставляются в папке gnuwin32 / bin :

Папка gnuwin32 / bin должна быть добавлена ​​к переменной PATH .

Примечание: Если вы создаете qtbase вне qt5.git, вам нужно будет загрузить win_bison и win_flex по ссылке выше и переименовать их в bison и flex .

Для получения инструкций по сборке исходного кода Qt 5 прочтите страницу Qt для Windows - Сборка из исходного кода.

Компиляторы

Visual Studio

Qt можно собрать с помощью Visual Studio 2015 (обновление 2), Visual Studio 2017, Visual Studio 2019 и инструментов сборки для Visual Studio 2017 и 2019 (см. Также Поддерживаемые платформы).

Компилятор Intel C ++ (Windows, Altix)

Qt был успешно протестирован с:

  • Windows - компилятор Intel (R) C ++ для 32-разрядных приложений, версия 9.1.040.
  • Altix - компилятор Intel (R) C ++ Itanium (R) для приложений на базе Itanium (R) Версия 8.1 Сборка 20050406 Идентификатор пакета: l_cc_pc_8.1.030

GCC (сборки MinGW)

Минимальная поддерживаемая версия MinGW-сборок - GCC 5.1.0 (64bit, 32bit), доступная на странице загрузки.

Для получения дополнительной информации о сборках MinGW посетите раздел Reference Configuration на странице поддерживаемых платформ.

Clang (лязг-cl)

Qt был успешно протестирован с Clang 3.8 (llvm svn rev. 256453 и clang svn rev. 256453). Visual Studio 2015 с обновлением 1 использовался для создания clang. Mkspec использует инструмент clang-cl для сборки Qt. Clang 3.8 не поддерживает предварительно скомпилированные заголовки.

Создание Qt WebEngine

Qt WebEngine имеет дополнительные требования к сборке, которые перечислены в Примечаниях к платформе Qt WebEngine.

Зависимости QDoc

Начиная с версии 5.11, QDoc использует Clang для синтаксического анализа кода C ++. Если вы хотите собрать QDoc вручную, обратитесь к разделу «Установка Clang для QDoc» за конкретными требованиями к сборке.

.

Установка Qt для Windows | Qt 4.8

Qt для Windows имеет некоторые требования, которые более подробно описаны в документе Требования Qt для Windows.

Если вы получили бинарный пакет для этой платформы, обратитесь к инструкциям по установке, приведенным вместо инструкций в этом документе.

Open Source Versions of Qt официально не поддерживается для использования с какой-либо версией Visual Studio. Интеграция с Visual Studio доступна как часть Qt Commercial Edition.

Шаг 1. Установите файл лицензии (только для коммерческих версий)

Если у вас есть коммерческая версия Qt, скопируйте файл лицензии из своей учетной записи на dist.trolltech.com в свой домашний каталог (это может быть переменная среды userprofile ) и переименуйте его в .qt-license . Этот процесс переименования должен выполняться с помощью командной строки в Windows, не в проводнике Windows. Например, в Windows 2000 % USERPROFILE% должно выглядеть примерно так: C: \ Documents and Settings \ username

Для версии с открытым исходным кодом вам не нужен файл лицензии.

Шаг 2: Распакуйте архив

Распакуйте файлы в каталог, в который вы хотите установить Qt; например C: \ Qt \% ВЕРСИЯ% .

Примечание: Путь установки не должен содержать пробелов или символов файловой системы Windows.

Шаг 3. Задайте переменные среды

Чтобы построить и использовать Qt, необходимо расширить переменную среды PATH :

 PATH - для поиска qmake, moc и других инструментов Qt 

Это делается путем добавления c: \ Qt \% VERSION% \ bin к переменной PATH .

Для более новых версий Windows, PATH можно расширить с помощью меню Панель управления | Система | Дополнительно | Переменные среды .

Вам также может потребоваться убедиться, что расположение вашего компилятора и других инструментов сборки указано в переменной PATH . Это будет зависеть от вашего выбора среды разработки программного обеспечения.

Примечание: Если вы не используете настроенные оболочки, которые доступны в меню приложения, в версиях Qt с открытым исходным кодом, для настройки configure потребуется sh.exe отсутствует в пути или запускается из msys . Это также относится к mingw32-make.

Шаг 4: Соберите библиотеку Qt

Чтобы настроить библиотеку Qt для вашего компьютера, введите следующую команду в командной строке Visual Studio :

 С:
cd / D C: \ Qt \% ВЕРСИЯ%
настроить 

Введите configure -help , чтобы получить список всех доступных параметров. На странице Опции конфигурации для Qt дается их краткий обзор.

Если у вас установлено несколько компиляторов и вы хотите собрать библиотеку Qt с использованием определенного компилятора, вы должны указать спецификацию qmake .Это делается путём настройки -platform ; например:

 configure -platform win32-msvc 

В некоторых случаях вам необходимо настроить среду компиляции перед запуском configure, чтобы использовать правильный компилятор. Например, вам нужно сделать это, если у вас установлена ​​Visual Studio 2005 и вы хотите скомпилировать Qt с использованием компилятора x64, потому что 32-битный и 64-битный компиляторы используют один и тот же файл спецификации qmake . Обычно это делается путем выбора Microsoft Visual Studio 2005 | Инструменты Visual Studio | <Командная строка> в меню Пуск .

Фактические команды, необходимые для сборки Qt, зависят от вашей системы разработки. Чтобы Microsoft Visual Studio создала библиотеку и скомпилировала все демонстрации, примеры, инструменты и руководства, введите:

Примечание: Если позже вам потребуется перенастроить и перестроить Qt из того же места, убедитесь, что все следы предыдущей конфигурации удалены, войдя в каталог сборки и набрав nmake distclean перед повторным запуском configure .

Вот и все.Qt теперь установлен.

Демонстрации и примеры Qt

Если вы новичок в Qt, мы предлагаем вам взглянуть на демонстрации и примеры, чтобы увидеть Qt в действии. Запустите примеры и демонстрации Qt, набрав qtdemo в командной строке или через меню «Пуск» на рабочем столе.

Вы также можете попробовать следующие ссылки:

Мы надеемся, что вам понравится Qt. Удачи!

.

Qt для Windows - Сборка из исходников

На этой странице описывается процесс настройки и сборки Qt для Windows. Перед сборкой существуют некоторые требования, которые более подробно описаны в документе Qt для Windows - Требования.

Вы можете скачать исходники Qt 5 со страницы Загрузки. Для получения дополнительной информации посетите страницу «Начало работы с Qt».

Шаг 1. Установите файл лицензии (только для Qt с коммерческой лицензией)

Если вы используете Qt с коммерческой лицензией, инструменты Qt ищут локальный файл лицензии.Если вы используете двоичный установщик или коммерческий Qt Creator, ваши лицензии автоматически выбираются и сохраняются в вашем локальном профиле пользователя (файл % USERPROFILE% \ AppData \ Roaming \ Qt \ qtlicenses.ini ).

Если вы не используете двоичный установщик или Qt Creator, вы можете загрузить соответствующий файл лицензии со своего веб-портала учетной записи Qt и сохранить его в своем профиле пользователя как % USERPROFILE% \. Qt-license . Если вы предпочитаете другое местоположение или другое имя файла, вам необходимо установить для переменной среды QT_LICENSE_FILE соответствующий путь к файлу.

Шаг 2: Распакуйте архив

Распакуйте файлы в каталог, в который вы хотите установить Qt; например C: \ Qt \% ВЕРСИЯ% .

Примечание: Путь установки не должен содержать пробелов или символов файловой системы Windows.

Шаг 3. Задайте переменные среды

Мы рекомендуем создать ссылку на рабочем столе, которая открывает командную строку со средой, настроенной аналогично пунктам меню Командная строка , предоставляемым Visual Studio.Это делается путем создания ссылки на приложение, передавая файл .cmd , настраивающий среду, и параметр командной строки / k (остается открытым) на cmd.exe .

Предполагается, что файл называется qt5vars.cmd , а папка Qt называется Qt-5 и находится в папке C: \ Qt :

 REM Установите Microsoft Visual Studio 2017, где  - это amd64, x86 и т. Д.
ВЫЗОВ "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ VC \ A вспомогательный \ Build \ vcvarsall.летучая мышь "<арх>
УСТАНОВИТЬ _ROOT = C: \ Qt \ Qt-5
SET PATH =% _ ROOT% \ qtbase \ bin;% _ ROOT% \ gnuwin32 \ bin;% PATH%
REM Раскомментируйте строку ниже при использовании git checkout исходного репозитория
REM SET PATH =% _ ROOT% \ qtrepotools \ bin;% PATH%
УСТАНОВИТЬ _ROOT = 

Затем можно создать ссылку на рабочий стол, указав команду % SystemRoot% \ system32 \ cmd.exe / E: ON / V: ON / k C: \ Qt \ qt5vars.cmd в качестве приложения и C: \ Qt \ Qt-5 как рабочий каталог.

Примечание: Настройки для MinGW аналогичны; они отличаются только тем, что папку установки bin следует добавить в путь вместо вызова сценария установки Visual Studio.Для MinGW убедитесь, что в пути нет sh.exe , так как это влияет на mingw32-make .

Настройки, необходимые для дополнительных библиотек (см. Qt для Windows - Требования), также должны находиться в этом файле под вызовом сценария установки Windows SDK.

Шаг 4: Соберите библиотеку Qt

Поведение configure по умолчанию - создание сборки Qt 5 из исходных кодов. Если вы хотите установить Qt 5 в отдельное место, вам необходимо указать опцию командной строки -prefix .В качестве альтернативы параметр командной строки -developer-build создает сборку из исходного кода для использования разработчиком.

Чтобы сконфигурировать библиотеку Qt для отладочной сборки для вашего компьютера, введите в командной строке следующую команду:

 configure -debug -nomake examples -nomake tests -skip qtwebengine -opensource 

На странице параметров настройки содержится дополнительная информация о параметрах настройки.

Чтобы собрать Qt с использованием jom, введите:

Если у вас не установлен jom, введите:

Для MinGW введите:

Если был указан префикс установки, введите jom install , nmake install или mingw32-make install .

Примечание: Если позже вам потребуется перенастроить и перестроить Qt из того же места, убедитесь, что все следы предыдущей конфигурации удалены, войдя в каталог сборки и набрав nmake distclean перед повторным запуском configure .

Параллельные сборки

jom - это замена nmake , которая использует все ядра ЦП и, таким образом, ускоряет сборку.

Шаг 5: Сборка документации Qt

Чтобы справочная документация Qt была доступна в Qt Assistant, вы должны собрать ее отдельно:

Это создаст документацию в папке сборки.Если вы установили Qt в отдельном месте, вам также потребуется установить документацию:

.

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

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