0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Установка qt creator в Windows 10

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

Инструмент qmake генерирует Makefile, который основывается на информации из файла проекта, генерируемого Qt Creator. Он может генерировать Makefile для MinGW, Microsoft Visual Studio и CSL ARM в Windows и GNU Compiler Collection (GCC) в Linux и Mac OS X.

Для получения дополнительной информации о qmake смотрите Руководство qmake.

Настройка Qt Creator для разработки под андроид: быстрый старт под Windows

  • Qt
  • QML
  • android

Записки для себя, но вдруг кому будет полезно: есть многочисленные интернетные гайды, но они все — неизвестного времени, а многое — поменялось.

Загорелось мне тут сделать программу одну для телефона, чисто для себя. Ну, понятно, Qt+QML, потому что Qt я знаю, QML видел издалека, ничего сложного не запланировано. Как и всегда, главный вопрос «как начать» (т.е. настроить все, чтобы оно работало, компилировало, загружало в телефон/эмулятор), я на него потратил минимум полдня и пришел в результате к такому рецепту на 15 минут (ну может на час — на моем домашнем интернете все качалось стремительно, но не у всех оно будет так):

I. Установка Android Studio

Этот этап, совершенно точно, необязателен, но тогда вам придется качать все эти SDK/NDK/JRE вручную, а Android Studio умеет делать все это сама.

  • Качаем Android Studio, запускаем инсталлятор, инсталлируем в C:AndroidStudio (вместо Program Files, удобнее все держать в одной куче).
  • Запускаем, выбираем «Import an Android code sample», выбираем любой пример (наверное, из Getting Started), я брал Media Effects
  • Menu — Tools — SDK Manager:
    • Меняем путь к SDK c %HOME%/AppData/Local. на C:AndroidSDK (поверьте, так будет лучше!)
    • Оно спросит скачать ли базовые штуки (Android Platform 28), соглашаемся, ждем пока скачает.
    • Закрываем SDK Manager, Menu — Build — Build Project
      • Оно начнет его билдить и в процессе будет спрашивать «не хватает детали, докачать»
      • На все такие вопросы (в виде гиперлинка ‘Download то-то’) отвечаем «да» путем нажатия на гиперлинк
      • При быстром интернете, минут через 5-10 у вас будет первое собраное приложение.
  • Когда первое приложение собралось (все детали докачаны): Menu — Run — Run application
    • Откроется список устройств (подключенных и эмуляторов), он будет пуст скорее всего (и студия захочет всякого поскачивать)
    • Create New Device — Выбираем из списка какой-нибудь телефон — Next
    • На следующей странице — System Image — выбираем какую-нибудь версию андроида из предложенных — Download, когда скачалось — выбираем его же, еще пара кнопок — эмулятор
      Архитектура эмулятора — x86, не ARM. ARM-овский эмулятор чудовищно медленно работает.
    • Закрываем создатель устройств, выбираем созданное из списка, запускаемся на нем.
    • В первый раз оно загружается долго, ждем, ждем, ждем, на эмуляторе запустилось наше приложение, треть дела сделана.
  • Теперь нужно скачать NDK, он нужен Qt Creator.
    Menu — Tools — SDK Manager, закладка SDK Tools, ставим галочку на NDK:

    Жмем Apply и оно его качает.
  • На этой ноте (при повторном исполнении, все, со всеми скачиваниями, занимает минут 20) закрываем Android Studio (ну можно еще подключить живой телефон, разрешить на нем Debug Mode и собранное в процессе скачивания всего приложение — запустить там).
  • Идем в %HOME%/AppData/Local и стираем папку Android (туда студия качала начальные SDK, но мы поменяли папку с SDK на C:AndroidSDK и в AppData остались ошметки, они более не нужны).

II. Установка Qt

Qt я всегда ставил/собирал из исходников, но тут — не тот случай, потому что Qt нам нужно много и собирать упаришься. Берем инсталлятор (я взял оффлайновый из, в данном случае, http://download.qt.io/official_releases/qt/5.12/5.12.2/), но онлайновый тоже подошел бы, качаем эти 3.7 гигабайта, запускаем, пропускаем страницу с Qt login, выбираем целевой каталог (умолчание — OK) и переходим к экрану выбора компонентов. Нужно отметить вот такие галочки:

  • MSVC 2017: на случай, если мы захотим поотлаживаться в MSVC (ниже объясню почему захотим).
    Предполагается, конечно, что MSVC 2017 у вас установлен (если нет — по идее, Community Edition вполне ОК, хотя я и не пробовал)
  • MinGW в списке сборок Qt и в списке Developer/Designer tools: на случай, если мы захотим отлаживать C++ в Qt Creator (из Qt Creator можно компилировать и MSVC, но нельзя отлаживаться)
  • Android x86: для запуска бинарников в эмуляторе. Потому что эмуляторы Android/x86 быстрые, а Android/ARM — медленные
  • Android ARMv7: для запуска бинарников на телефоне.
  • Для C++/Windows — лично мне достаточно 64 бит чтобы поиграться (а установленное таким образом Qt — с боевым Qt от сборки FRV/итп — никак не пересекается).

(поясню на всякий случай: Java-бинарники андроида, которые делает Android Studio — они, конечно, аппаратно-независимы. А вот C++ (то есть Qt) — собирается отдельно под каждую платформу).

Жмем Next, ставимся, в конце оно запустит Qt Creator.

Можно выбрать какой-то проект из C:QtQt5.12.2Examples, выбрать для него виндовую платформу (MSVC или MinGW, по вкусу, убедиться что под винду у вас собирается и запускается все (если нет, то я ХЗ, обычно оно работает :).

Важно:

  • Текущий Android NDK — это clang toolchain
  • Текущий Qt (5.12.2 на момент написания этого текста) — в NDK ждет clang toolchain
  • Более старые Qt (я пробовал 5.6) — ожидают в NDK gcc toolchain и все ломается.
  • Понятно что если вы все умеете (в Qt Creator, qmake и так далее) — вы даже и это почините, но лучше просто брать все свежее (т.е. одного примерно возраста)

III. Настройка Qt Creator для андроида

Это место, на котором я при старте потерял больше всего времени. JDK всякие качал и ставил, NDK распаковывал вручную и прочая, пока не пришел к такому вот рецепту.

Qt Creator — Tools — Options — Devices:

  • JDK location: вам достаточно того, что с собой принесла Android Studio.
    Более того, попытки поставить сравнительно свежий JDK и скормить его Qt Creator — не работают (JDK8 работает, более новые — хрен).
  • SDK location — понятно
  • NDK location — Android Studio скачала его для вас
  • Можно ткнуть в SDK Manager и скачать (или удалить) какую-то версию, на удивление это место работает.
  • Можно ткнуть в AVD Manager и сделать еще какой-нибудь эмулятор, но у Android Studio это место работает понятнее.
  • Собственно, все, все должно работать. Проверяем
    • Открываем какой-нибудь проект из C:QtQt5.12.2ExamplesQt-5.12.2quick
    • Нам предложат все 4 варианта рантайм/архитектура, которые мы установили с Qt, соглашаемся, Configure Project
    • Идем в закладку Projects, выбираем Android for x86, ждем пока иконки Debug/Build/Run обретут цвет.
    • Нажимаем Run
    • Выбираем эмулятор из тех, что сконфигурировали андроид-студией на шаге I
    • Ждем примерно 30-50 секунд, пока проект скомпилируется (сборка/деплой apk из под Qt Creator не сильно стремительные)
    • И, да, оно запустится в эмуляторе. Реально всякий раз удивляюсь.
  • Важно: чтобы Qt Creator воспринимал эмулятор нормально, нужно на этом эмуляторе что-то разок запустить из Android Studio. Без этого «API Level: -1» и оно считается несовместимым.

IV Вместо заключения

Разрабатывать C++ + QML мне понравилось.

Я уверен, что есть всякие ограничения и недостатки, как и у любой мультиплатформенной конструкции, но опыт с Qt говорит мне, что самые тяжелые проблемы таки как-то решены 🙂 /впрочем, в QML мне сильно не хватает #ifdef /, просто я еще на них не натыкался, у меня и так все выходит /как-то/.

Есть огромный, просто гигантский (особенно на стадии обучения) плюс в том, что оно (Qt+QML) умеет работать Native на Windows: edit — build — run для небольшого проекта занимает буквально секунду (1-3 если быть точным) на моем железе, тогда как Android studio делает это секунд за 15 (попробовал) для Java-приложения, а изготовление Qt+QML apk-файла занимает как бы не секунд 40 (и apk-шка большая, едет даже на эмулятор не мгновенно).

Поэтому minor edit — run — гораздо (собственно на 1-2 порядка) быстрее для native приложения, чем даже для Java+эмулятор, не говоря о Qt+QML+эмулятор (или native девайс). Понятно что мультитач в native-приложении толком не потестировать (пишу не пробовав, в принципе то у меня есть MS Surface с тач-экраном и надо будет проверить).

Кроме этого, еще замечания:

  • Редактировать QML гораздо удобнее в Qt Creator: он знает синтаксис и есть контекстная помощь по компонентам.
  • Редактировать C++ в Qt Creator мне люто не понравилось: все мигает и переливается всякими сообщениями/предупреждениями, а комплетер работает (как мне показалось) только для полностью синтаксически корректных описаний (т.е. если у меня описание класса развалено, то комплетер для членов класса работать не будет). Визуальная студия ну гораздо лучше (для меня) как C++-редактор (ну и привычки у меня к ней больше, конечно).
  • Отладка C++ в Qt Creator (для меня) гораздо хуже, чем в MSVC:
    • Гораздо дольше запуск, все загружаемые DLL как-то анализируются на лету и это занимает при запуске десятки секунд (запуск не под отладчиком — ок, все быстро)
    • Ну и сам отладчик (скажем, инспекция переменных) — по мне так сильно хуже.
    • Отладчик студии запускается быстро (хотя в MSVC 2013 — еще быстрее, чем в 2017) и меня полностью устраивает.
  • Отладка QML, соответственно, наоборот: я вообще не понял, есть ли она в MSVC (не разбирался), а в Qt Creator — в тех объемах что мне было надо — работает.
Читать еще:  Что делать если системный блок сильно шумит?

В результате я пишу QML-интерфейс и скелет C++-кода в Qt Creator, а когда гуй работает, закрываю креатор и иду писать мясо в визуальной студии. Так и живу.

Установка Qt Creator

Итак, пора рассмотреть как установить Qt Creator. Если для Windows разработчики позаботились и сделали оффлайн-установщик, то в Linux 32-bit этой возможности не предусмотрено. Поэтому во время установки вам может потребоваться стабильное интернет-соединение (

20-30 минут). Для начала скачаем установщик:

После окончания загрузки переходим в папку с файлом, нажимаем правой кнопкой мыши и выбираем пункт «Свойства».

Теперь перейдем на вкладку «Права» и поставим галочку «Разрешить запуск этого файла в качестве программы».

Теперь нажимаем «Next».

Здесь необходимо выбрать существующий аккаунт или создать его. Данное действие необходимо для проверки лицензии (коммерческой или некоммерческой).

Нажимаем «Next».

Выбираем директорию, в которой будет находиться Qt. Важно, чтобы в пути не было кириллицы и пробелов!

В этом меню находится выбор компонентов. К примеру, можно выбрать установку инструментов для разработки на Android, или же исходных компонентов (это нужно для статической сборки, если кому-то это нужно — напишите в комментариях, и я напишу отдельную статью). Если Вы не уверены, нужны Вам эти компоненты или нет, оставьте их пока так — даже после установки Qt будет возможным удаление и добавление элементов.

В этом окне принимаем лицензию. Жмем «Next».

Если Вы готовы, начинайте установку. У Вас запросят пароль суперпользователя (sudo), после чего начнется скачивание и извлечение файлов. Альтернативный способ — установка через терминал. Для начала необходимо обновить список пакетов.

sudo apt update

Скачиваем и устанавливаем Qt:

sudo apt install qt5-default

Теперь установка Qt Creator:

sudo apt install qtcreator

И, если нужно, исходники.

sudo apt install qtbase5-examples qtdeclarative5-examples

Установка Qt Creator в Windows

Перво-наперво нам нужно скачать установочный пакет Qt. Вы можете это сделать, обратившись к официальному сайту qt.io. Либо же воспользоваться альтернативным вариантом и скачать с какого-нибудь «зеркала», например c этого (полный список всех «зеркал» находится здесь):

Нажимаем на official_releases/ и переходим к online_installers/ :

Нажимаем на online_installers/ и скачиваем файл qt-unified-windows-x86-online.exe :

Запустив скачанный файл, видим перед собой приветствие «Qt Online Installer». Нажимаем Next :

Далее у нас спросят о наличии Qt-аккаунта. Можно смело нажимать Skip и двигаться дальше:

Затем снова Далее :

Теперь нам нужно указать путь установки Qt. Для простоты я выбрал C:Qt :

На следующем шаге нам нужно выбрать набор компиляторов, которыми мы будем пользоваться в наших уроках. Я предлагаю ограничиться выбором пакета MinGW 7.3.0 32-bit , а остальные метки поставить так, как указано на скриншоте ниже:

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

Инструменты

  1. IDE Qt Creator с набором предварительно собранных компонент фреймворка Qt 5.14 для android (560 Мб);
  2. Java SE Development Kit 8 (JDK) или OpenJDK 8 (100 Мб);
  3. Android Studio (749 Mб);
  4. Компоненты для сборки приложений (3 Гб);
  5. Genymotion (250 Мб + (образ) 350 Мб).

Все компоненты из вышеуказанного списка выбирайте в соответствии с вашей операционной системой и её разрядностью (битностью). Дальнейшее описание будет приводиться на примере Windows 7 x64.

Установка предварительно собранных компонент фреймворка Qt 5.14 для android

Предполагается, что на данный момент у вас на ПК уже установлен Qt, если это не так, то все нижеперечисленные действия можно проделать в момент установки Qt через web installer который можно загрузить с официального сайта qt framework https://www.qt.io/.

Первым делом запустим Qt Maintenance Tool. Для этого напишите Qt Maintenance Tool в строке поиска меню Пуск. С помощью данного инструмента можно устанавливать/обновлять/удалять компоненты qt framework.

После запуска нажмите Далее и введите данные от своей учётной записи. На следующем экране выберите Добавление или удаление компонентов и снова нажмите Далее. После небольшой подгрузки перед вами откроется окно выбора компонентов. Установите галочку рядом с компонентом Android и нажмите Далее.


Рис. 1 Компоненты для android

После окончания установки закройте окно Qt Maintenance Tool.

Установка JDK 8/OpenJDK 8

Если этот компонент у вас уже установлен, данный раздел можно пропустить.

Внимание! Нужна именно восьмая версия. Для того, чтобы проверить какая версия JDK установлена на вашем ПК, и есть ли она вообще, напишите в командной строке: java -version . Открыть командную строку можно комбинацией клавиш Win + R .


Рис. 2 Проверка версии JDK

Обратите внимание, в выводе должно быть написано именно JDK, а не JRE. Если вы видите сообщение об ошибке (значит Java не установлена) или версия отличается от 1.8, то переходите к процедуре установки.

На этом шаге есть два основных варианта:

  • Установить Oracle JDK 8 с официального сайта. В этом случае вам придется создать учётную запись заполнив довольно объёмную форму регистрации с последующим подтверждением через электронную почту;
  • Установить одну из сборок OpenJDK 8.

Для лабораторной работы рекомендуется использовать AdoptOpenJDK как менее затратный по времени вариант. Из списка выберите подходящий для вашей системы вариант JDK и нажмите скачать.

  • msi версия произведёт автоматическую установку и настройку ОС для работы с JDK включая добавление пути к папке с JDK в переменную среды Path и JAVA_HOME . Выбирайте этот вариант, если в вашей системе ещё не установлена Java вообще или установленная версия ниже восьмой.
  • zip версия содержит папку с JDK, которую можно распаковать в удобное для вас место. Это вариант стоит выбирать, тем, у кого установленная версия Java выше 1.8.

Если вы выбрали установку через msi, проверьте корректность установки выполнив команду: java -version в командной строке. Если всё установилось правильно вы увидите вывод как на рис. 2.

Установка Android Studio

В связи с санкциями против Крыма прежде чем перейти непосредственно к установке выполним некоторые дополнительные действия, а именно настроим VPN. Возможные варианты:

  • Вы уже пользуетесь VPN сервисами (не плагин для браузера), используйте их;
  • У вас VPN на смартфоне + много мобильного интернета, раздайте Wi-Fi или подключите телефон к компьютеру в режиме USB-модема;
  • Используйте способ указанный здесь.

Подключите VPN-соединение и перейдите на сайт. Нажмите на кнопку Download Android Studio предварительно убедившись, что ваша операционная система была определена верно (надпись под кнопкой). В противном случае воспользуйтесь ссылкой Download Options, чтобы перейти к списку доступных для загрузки версий Android Studio.


Рис.3 Загрузка Android Studio

В зависимости от загруженности VPN-канала загрузка может занять от 40 мин и более.

Если вы предпочитаете работать с командной строкой/терминалом, то можно обойтись без загрузки Android Studio, а воспользоваться инструментом sdkmanager . Плюсом консольной версии sdkmanager является размер, он почти в 10 раз меньше Android Studio и составляет 77 Мб. Но для начинающих разработчиков данный вариант выбирать не рекомендуется, т.к. версия SDK Manager с графическим интерфейсом встроенная в Android Studio существенно удобнее в использовании.

После окончания загрузки установите Android Studio в удобное для вас место. В целом процедура установки стандартная, единственный вопрос может возникнуть на вкладке выбора компонентов.

Компонент Android Virtual Device нужен в том случае если вы планируете использовать стандартный эмулятор андроид устройств. Но кроме Android Virtual Device потребуется установить ряд других компонентов. Т.к. в данной лабораторной работе предполагается использование эмулятора от сторонних разработчиков — Genymotion, поэтому, установка доп. компонентов, требуемых для работы стандартного эмулятора, описана не будет, а значит и установка Android Virtual Device не имеет смысла, то есть галочку можно убрать.


Рис.4 Выбор компонентов Android Studio

Во время запуска Android Studio попробует найти папку с загруженными SDK. Если ему это не удастся, то запустится мастер который предложит скачать последнюю версию SDK. Путь для размещения SDK можно указать любой, кроме той папки где установлена Android Studio. Если у вас уже есть папка с SDK, можно просто указать путь к ней.


Рис. 5 Android Studio Setup Wizard

После окончания загрузки SDK перезапустите Android Studio и, в открывшемся окне, щёлкните по кнопке Configure. Выпадающем списке выберите SDK Manager.


Рис. 6 Запуск SDK Manager

В открывшемся окне нас будут интересовать две вкладки: SDK Platforms и SDK Tools.

На вкладке SDK Platforms вы увидите список доступных для загрузки SDK. Версия SDK совпадает с уровнем API (второй столбец). В первом столбце указана версия android начиная с которой данный уровень API был введён.

Разные версии Qt framework поддерживают разные уровни API. Qt версии 5.14 поддерживает API начиная с 21 уровня и выше (информация с официального сайта, но на практике лучше использовать SDK начиная с 24 версии). Это значит, что для устройств работающих на версии Android ниже 5 (Lollipop) ваша программа собранная с помощью Qt 5.14, скорее всего, не заработает, а значит нет смысла скачивать SDK ниже 21 версии. В следствии обратной совместимости разных уровней API нам нет необходимости для каждой версии Android скачивать свой SDK. Для сборки приложений мы можем использовать SDK для самого последнего уровня API, в этом случае наши приложения будут работать на всех android устройствах. Разумеется, если мы хотим обеспечить работу приложения на Android 5.0 (API 21) мы не должны использовать функции которые появились только начиная c API 22 уровня и т.д.

Читать еще:  Почему при скачивании файла пишет загрузка прервана?


Рис. 7 Выбор комплекта SKD

Переключитесь на вкладку SDK Tools. Снимите галочку Hide Obsolete Packages (внизу окна). И выберите все компоненты указанные на скриншоте.


Рис. 8 Выбор SDK Tools

Поставьте галочку Show Package Details. В разделе Android SDK Build-Tools 30-rc1 установите галочку напротив версии 28.0.3, а в разделе NDK (Side by side) проверьте, что выбрана самая последняя версия (на данный момент это 21.0.6113669).


Рис. 9 Выбор Android SDK Build-Tools

Пояснения по поводу Android SDK Build-Tools. В целом, обычно рекомендуют всегда выбрать самую последнюю версию инструментов сборки. Здесь рекомендуется выбирать версию 28.0.3, по причине того, что в скрипте создаваемом для инструмента сборки android приложений Gradle по умолчанию прописана именно версия 28.0.3. Это значение можно изменить вручную отредактировав скрипт, но это придётся делать каждый раз.
Внимание! Возможно версия Android SDK Build-Tools используемая Gradle по умолчанию будет изменена, в таком случае вы увидите сообщение об ошибке с указанием требуемой версии. Кроме того, Qt умеет скачивать требуемую версию сам, но для этого нужно будет включить VPN, для обхода санкций.

Загрузка выбранных компонентов может занять продолжительное время (более часа).

Установка Qt Creator

Давайте сначала начнем с установки Build Essential, который представляет собой метапакет, который позволяет устанавливать и использовать инструменты C ++ в Debian.

Откройте командную строку Debian, Terminal, либо через панель поиска Application Launcher, как показано ниже:

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

Эта команда позволяет установить последние доступные пакеты программного обеспечения, доступные в Интернете.

Теперь выполните следующую команду от имени sudo, чтобы установить пакет Build Essential:

Обратите внимание, что только авторизованный пользователь может добавлять, удалять, обновлять и настраивать программное обеспечение в Debian. Пожалуйста, введите свой пароль и введите Y, когда система предложит вам продолжить установку.

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

Пожалуйста, введите Y, когда система предложит вам продолжить установку.

Если вы хотите, чтобы Qt 5 использовалась в качестве версии Qt Creator по умолчанию, введите следующую команду:

Пожалуйста, введите Y, когда система предложит вам продолжить установку.

Чтобы развернуть более сложные проекты позже, вам нужно будет установить документацию и примеры Qt. Вы можете сделать это, выполнив следующую команду от имени sudo:

  • qt5-doc: Этот пакет содержит документацию по API Qt 5.
  • qtbase5-examples: Этот пакет содержит примеры Qt Base 5.
  • qtbase5-doc-html: Этот пакет содержит документацию HTML для базовых библиотек Qt 5.

Пожалуйста, введите Y, когда система предложит вам продолжить установку.

Теперь вы готовы использовать командную строку Qt Creator и инструменты пользовательского интерфейса!

1. Запустите Qt Creator, откройте настройки среды через меню ToolsOptions и переключите его интерфейс на английский язык.

Настройки Qt Creator — страница Build & Run

2. Перейдите на страницу Build & Run, на вкладку Qt Versions.

Диалог поиска qmake

3. Нажмите кнопку Add… и укажите путь к установленному Qt Static. Обычно путь следующий:

Qt Creator — Build & Run — результат добавления

4. Заполните поле Version name, указав там текущую версию Qt с постфиксом Static. Нажмите Apply.

Настройки компиляторов в Qt Creator

5. В том же окне настроек перейдите на вкладку Compilers. Нажмите кнопку Add -> MinGW и укажите название (в поле Name рекомендуем указать MinGW32) и путь к компилятору MinGW в Compiler path. В большинстве случаев он будет следующим:

Не забудьте нажать Apply после завершения ввода пути.

Настройка среды сборки Qt Creator

6. Перейдите на вкладку Kits, нажмите кнопку Add и укажите следующие параметры:

  • NameMinGW32;
  • CompilerMinGW32;
  • DebuggerSystem GDB;
  • Qt version — ваше название с постфиксом Static.

Не забудьте нажать Apply и теперь OK для закрытия формы и применения созданных конфигураций.

Свойства открытого проекта в Qt Creator

7. Откройте свой проект в Qt Creator, выберите на левой панели пункт Projects. Нажмите кнопку Add Kit и выберите созданный нами MinGW32.

Настройка конфигураций сборки проекта в Qt Creator

8. Переключитесь на конфигурацию MinGW32, затем в меню Edit build configuration выберите Release. Теперь около Build Steps нажмите кнопку Details и в поле Additional arguments впишите следующее:

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

Иногда может случиться такая ситуация, что необходимо скомпилировать и в будущем запустить ваше приложение, разработанное в среде 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Версия Qtmingw***_**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.

Читать еще:  Установка elementary os рядом с Windows 10

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

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

Настройка Qt Creator для разработки под андроид: быстрый старт под Windows

  • Qt
  • QML
  • android

Записки для себя, но вдруг кому будет полезно: есть многочисленные интернетные гайды, но они все — неизвестного времени, а многое — поменялось.

Загорелось мне тут сделать программу одну для телефона, чисто для себя. Ну, понятно, Qt+QML, потому что Qt я знаю, QML видел издалека, ничего сложного не запланировано. Как и всегда, главный вопрос «как начать» (т.е. настроить все, чтобы оно работало, компилировало, загружало в телефон/эмулятор), я на него потратил минимум полдня и пришел в результате к такому рецепту на 15 минут (ну может на час — на моем домашнем интернете все качалось стремительно, но не у всех оно будет так):

I. Установка Android Studio

Этот этап, совершенно точно, необязателен, но тогда вам придется качать все эти SDK/NDK/JRE вручную, а Android Studio умеет делать все это сама.

  • Качаем Android Studio, запускаем инсталлятор, инсталлируем в C:AndroidStudio (вместо Program Files, удобнее все держать в одной куче).
  • Запускаем, выбираем «Import an Android code sample», выбираем любой пример (наверное, из Getting Started), я брал Media Effects
  • Menu — Tools — SDK Manager:
    • Меняем путь к SDK c %HOME%/AppData/Local. на C:AndroidSDK (поверьте, так будет лучше!)
    • Оно спросит скачать ли базовые штуки (Android Platform 28), соглашаемся, ждем пока скачает.
    • Закрываем SDK Manager, Menu — Build — Build Project
      • Оно начнет его билдить и в процессе будет спрашивать «не хватает детали, докачать»
      • На все такие вопросы (в виде гиперлинка ‘Download то-то’) отвечаем «да» путем нажатия на гиперлинк
      • При быстром интернете, минут через 5-10 у вас будет первое собраное приложение.
  • Когда первое приложение собралось (все детали докачаны): Menu — Run — Run application
    • Откроется список устройств (подключенных и эмуляторов), он будет пуст скорее всего (и студия захочет всякого поскачивать)
    • Create New Device — Выбираем из списка какой-нибудь телефон — Next
    • На следующей странице — System Image — выбираем какую-нибудь версию андроида из предложенных — Download, когда скачалось — выбираем его же, еще пара кнопок — эмулятор
      Архитектура эмулятора — x86, не ARM. ARM-овский эмулятор чудовищно медленно работает.
    • Закрываем создатель устройств, выбираем созданное из списка, запускаемся на нем.
    • В первый раз оно загружается долго, ждем, ждем, ждем, на эмуляторе запустилось наше приложение, треть дела сделана.
  • Теперь нужно скачать NDK, он нужен Qt Creator.
    Menu — Tools — SDK Manager, закладка SDK Tools, ставим галочку на NDK:

    Жмем Apply и оно его качает.
  • На этой ноте (при повторном исполнении, все, со всеми скачиваниями, занимает минут 20) закрываем Android Studio (ну можно еще подключить живой телефон, разрешить на нем Debug Mode и собранное в процессе скачивания всего приложение — запустить там).
  • Идем в %HOME%/AppData/Local и стираем папку Android (туда студия качала начальные SDK, но мы поменяли папку с SDK на C:AndroidSDK и в AppData остались ошметки, они более не нужны).

II. Установка Qt

Qt я всегда ставил/собирал из исходников, но тут — не тот случай, потому что Qt нам нужно много и собирать упаришься. Берем инсталлятор (я взял оффлайновый из, в данном случае, http://download.qt.io/official_releases/qt/5.12/5.12.2/), но онлайновый тоже подошел бы, качаем эти 3.7 гигабайта, запускаем, пропускаем страницу с Qt login, выбираем целевой каталог (умолчание — OK) и переходим к экрану выбора компонентов. Нужно отметить вот такие галочки:

  • MSVC 2017: на случай, если мы захотим поотлаживаться в MSVC (ниже объясню почему захотим).
    Предполагается, конечно, что MSVC 2017 у вас установлен (если нет — по идее, Community Edition вполне ОК, хотя я и не пробовал)
  • MinGW в списке сборок Qt и в списке Developer/Designer tools: на случай, если мы захотим отлаживать C++ в Qt Creator (из Qt Creator можно компилировать и MSVC, но нельзя отлаживаться)
  • Android x86: для запуска бинарников в эмуляторе. Потому что эмуляторы Android/x86 быстрые, а Android/ARM — медленные
  • Android ARMv7: для запуска бинарников на телефоне.
  • Для C++/Windows — лично мне достаточно 64 бит чтобы поиграться (а установленное таким образом Qt — с боевым Qt от сборки FRV/итп — никак не пересекается).

(поясню на всякий случай: Java-бинарники андроида, которые делает Android Studio — они, конечно, аппаратно-независимы. А вот C++ (то есть Qt) — собирается отдельно под каждую платформу).

Жмем Next, ставимся, в конце оно запустит Qt Creator.

Можно выбрать какой-то проект из C:QtQt5.12.2Examples, выбрать для него виндовую платформу (MSVC или MinGW, по вкусу, убедиться что под винду у вас собирается и запускается все (если нет, то я ХЗ, обычно оно работает :).

Важно:

  • Текущий Android NDK — это clang toolchain
  • Текущий Qt (5.12.2 на момент написания этого текста) — в NDK ждет clang toolchain
  • Более старые Qt (я пробовал 5.6) — ожидают в NDK gcc toolchain и все ломается.
  • Понятно что если вы все умеете (в Qt Creator, qmake и так далее) — вы даже и это почините, но лучше просто брать все свежее (т.е. одного примерно возраста)

III. Настройка Qt Creator для андроида

Это место, на котором я при старте потерял больше всего времени. JDK всякие качал и ставил, NDK распаковывал вручную и прочая, пока не пришел к такому вот рецепту.

Qt Creator — Tools — Options — Devices:

  • JDK location: вам достаточно того, что с собой принесла Android Studio.
    Более того, попытки поставить сравнительно свежий JDK и скормить его Qt Creator — не работают (JDK8 работает, более новые — хрен).
  • SDK location — понятно
  • NDK location — Android Studio скачала его для вас
  • Можно ткнуть в SDK Manager и скачать (или удалить) какую-то версию, на удивление это место работает.
  • Можно ткнуть в AVD Manager и сделать еще какой-нибудь эмулятор, но у Android Studio это место работает понятнее.
  • Собственно, все, все должно работать. Проверяем
    • Открываем какой-нибудь проект из C:QtQt5.12.2ExamplesQt-5.12.2quick
    • Нам предложат все 4 варианта рантайм/архитектура, которые мы установили с Qt, соглашаемся, Configure Project
    • Идем в закладку Projects, выбираем Android for x86, ждем пока иконки Debug/Build/Run обретут цвет.
    • Нажимаем Run
    • Выбираем эмулятор из тех, что сконфигурировали андроид-студией на шаге I
    • Ждем примерно 30-50 секунд, пока проект скомпилируется (сборка/деплой apk из под Qt Creator не сильно стремительные)
    • И, да, оно запустится в эмуляторе. Реально всякий раз удивляюсь.
  • Важно: чтобы Qt Creator воспринимал эмулятор нормально, нужно на этом эмуляторе что-то разок запустить из Android Studio. Без этого «API Level: -1» и оно считается несовместимым.

IV Вместо заключения

Разрабатывать C++ + QML мне понравилось.

Я уверен, что есть всякие ограничения и недостатки, как и у любой мультиплатформенной конструкции, но опыт с Qt говорит мне, что самые тяжелые проблемы таки как-то решены 🙂 /впрочем, в QML мне сильно не хватает #ifdef /, просто я еще на них не натыкался, у меня и так все выходит /как-то/.

Есть огромный, просто гигантский (особенно на стадии обучения) плюс в том, что оно (Qt+QML) умеет работать Native на Windows: edit — build — run для небольшого проекта занимает буквально секунду (1-3 если быть точным) на моем железе, тогда как Android studio делает это секунд за 15 (попробовал) для Java-приложения, а изготовление Qt+QML apk-файла занимает как бы не секунд 40 (и apk-шка большая, едет даже на эмулятор не мгновенно).

Поэтому minor edit — run — гораздо (собственно на 1-2 порядка) быстрее для native приложения, чем даже для Java+эмулятор, не говоря о Qt+QML+эмулятор (или native девайс). Понятно что мультитач в native-приложении толком не потестировать (пишу не пробовав, в принципе то у меня есть MS Surface с тач-экраном и надо будет проверить).

Кроме этого, еще замечания:

  • Редактировать QML гораздо удобнее в Qt Creator: он знает синтаксис и есть контекстная помощь по компонентам.
  • Редактировать C++ в Qt Creator мне люто не понравилось: все мигает и переливается всякими сообщениями/предупреждениями, а комплетер работает (как мне показалось) только для полностью синтаксически корректных описаний (т.е. если у меня описание класса развалено, то комплетер для членов класса работать не будет). Визуальная студия ну гораздо лучше (для меня) как C++-редактор (ну и привычки у меня к ней больше, конечно).
  • Отладка C++ в Qt Creator (для меня) гораздо хуже, чем в MSVC:
    • Гораздо дольше запуск, все загружаемые DLL как-то анализируются на лету и это занимает при запуске десятки секунд (запуск не под отладчиком — ок, все быстро)
    • Ну и сам отладчик (скажем, инспекция переменных) — по мне так сильно хуже.
    • Отладчик студии запускается быстро (хотя в MSVC 2013 — еще быстрее, чем в 2017) и меня полностью устраивает.
  • Отладка QML, соответственно, наоборот: я вообще не понял, есть ли она в MSVC (не разбирался), а в Qt Creator — в тех объемах что мне было надо — работает.

В результате я пишу QML-интерфейс и скелет C++-кода в Qt Creator, а когда гуй работает, закрываю креатор и иду писать мясо в визуальной студии. Так и живу.

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector