Как добавить комплект в qt creator windows

Впервые столкнулся с такой проблемой. У меня ubuntu, ничего не получается! написано «Отсутствует подходящий комплект. Добавьте комплект в настройках или через инструмент обслуживания SDK.» вот нажимаю на настройки там ничего не выбирается!

Захожу в Qt Creator, нажимаю создать новый проект, выбираю Non-Qt > Plain C++ > Выбрать, Project lacation далее, Build system далее, В Kits у меня ничего нет и там пишет то что я писал выше! а без этого я не могу продолжить.


  • Вопрос задан

  • 33165 просмотров

Пригласить эксперта

Столкнулся сейчас с данной проблемой, но только под Windows. Изначально я установил только Qt Creator. Но Qt Creator — это только IDE. Можно не устанавливать Qt Creator отдельно, а сразу запустить большой инсталлятор всех компонентов Qt и уже через него установить все необходимые компоненты, в том числе и Qt Creator.

5ab795d0678db148651622.png

Т.к. у меня уже установлена Visual Studio 2013, то вместо Qt/Qt 5.10.1/MinGW 5.3.0 32 bit и Qt/Tools/MinGW 5.3.0 я сначала попробовал установить Qt/Qt 5.10.1/MSVC 2013 64-bit. Такой вариант тоже работает, но в появившемся комплекте отсутствовал отладчик. Поэтому я остановил свой выбор на MinGW, т.к. в нём есть отладчик GDB.

5ab797e2d95ee477259313.png

а gcc если поставить? Должно помочь вроде

Qt тут при чем? Программист должен уметь собрать хотя бы hello world из консоли, а у вас и он не соберется, скорее всего.

sudo apt-get install build-essential


  • Показать ещё
    Загружается…

Минуточку внимания

В данной статье я опишу как сделать отдельный комплект со статической линковкой библиотек Qt5. Если другими словами, мы сможем собирать проект в один исполняемый файл без Qt *.dll.

Подготовка

Нам понадобится непосредственно сам Qt, с официального сайта Qt 5.x.x for Windows 32-bit (MinGW).
Во время установки поставьте галочку на «Source Components», т.к. исходники будут нам необходимы для сборки.
В своем примере я буду использовать Qt 5.5.0 for Windows 32-bit (MinGW 4.9.2).

Начнем

Сборка комплекта

  • Создаем резервную копию qmake.conf, он находится в «Qt5.5.0\5.5\mingw492_32\mkspecs\win32-g++»
  • Делаем изменения в qmake.conf
    QMAKE_LFLAGS += -static-libgcc -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
    DEFINES += QT_STATIC_BUILD
    
  • Создаем резервную копию исходников Qt, они находятся в «Qt5.5.0\5.5\Src»
  • Теперь запускаем терминал Qt — Qt 5.5 for Desktop (MinGW 4.9.2 32 bit), он находится
    в «Все программы -> Qt5.5.0 -> 5.5 -> MinGW 4.9.2 (32-bit)» или же полным путем «%appdata%\Microsoft\Windows\Start Menu\Programs\Qt 5.5.0\5.5\MinGW 4.9.2 (32-bit)»
  • Переходим в директорию с исходниками Qt, вводим команду
    cd X:\Qt\Qt5.5.0\5.5\Src\
  • Конфигурируем этап установки, вводя команду, где путь после -prefix, местоположение комплекта сборки
    configure -static -platform win32-g++ -prefix "X:\Qt\Qt5.5.0_Static" -release -opensource -confirm-license -nomake examples -nomake tests -nomake tools -opengl desktop -no-angle -qt-sql-sqlite -make libs -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype
    
  • По завершению конфигурирования, начинаем компиляцию исходников Qt, командой
    mingw32-make
    

    После компиляции, будет несколько ошибок, не обращаем на них внимание, они никак не скажутся на нашей сборке.

  • Копируем файлы в указанный нами каталог на этапе конфигурирования, командой
    mingw32-make install
    

    После копирования, так же будет несколько ошибок, не обращаем на них внимание.

  • Теперь восстанавливаем резервные копии исходников Qt и qmake.conf

Добавляем статичный комплект в Qt Creator

  • Запускаем Qt Creator
  • Открываем «Инструменты -> Параметры..»
  • Далее переходим «Сборка и запуск -> Qt Versions»
  • Жмем добавить и выбираем qmake.exe, точнее «X:\Qt\Qt5.5.0_Static\bin\qmake.exe»
  • Переходим во вкладку «Комплекты»
  • Жмем добавить
  • Пишем название нашего комплекта «Qt 5.5.0 Static MinGW 32», в профиле Qt указываем наш статичный профиль, который добавили в Qt Versions, так же указываем версию нашего компилятора и отладчика(MinGW)
  • Все, мы добавили статичный комплект в Qt Creator

Примечание: в статический комплект не будут включены библиотеки gcc, что бы они так же собирались в исполняемый файл, надо прописать в .pro/.pri

QMAKE_LFLAGS_RELEASE += -static -static-libgcc

Руководствовался информацией с англ. инструкции wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW

Спасибо за внимание!

Последнее обновление: 06.12.2023

Среда разработки Qt Creator не является неотъемлимым компонентом для разработки приложений с помощью фреймворка Qt, тем не менее он упрощает многие вещи, прежде всего конфигурацию и настройку
построения приложения. Кроме того, Qt Creator предоставляет унифицированный интерфейс для основных операционных систем. И в дальнейшем я буду ориентироваться прежде всего на Qrt Creator.

Создадим первый проект. Для этого откроем Qt Creator и на стартовом экране выберем Create Project…, либо перейдем к пункту меню :

Создание проекта в Qt Creator

И нам откроется окно выбора типа проекта:

Выбор типа проекта в Qt Creator

Выберем здесь тип шаблона Qt Widgets Application. Данный шаблон предоставляет базовый функционал для создания графического приложения.

На следующем шаге надо указать имя проекта и его расположение. Пусть проект будет называться HelloApp:

Настройка проекта в Qt Creator

Далее надо выбрать систему сборки. В данном случае у нас есть выбор между qmake, CMake и Qbs. У каждого из них есть свои особенности, но в данном случае не принципиально, какую именно использовать.
Поэтому возьмем первую из них qmake, которая представляет собственную систему сборки Qt.

Установка системы сборки проекта в Qt Creator

На следующем шаге нам отобразится окно с настройкой создаваемых файлов.

Установка класса приложения проекта в Qt Creator

Оставим все эти настройки по умолчанию. Но для общего понимания вкратце пробежимся по ним:

  • Class name: имя создаваемого класса приложения

  • Base class: базовый класс, от которого будет наследоваться класс приложения. По умолчанию у нас есть выбор из QMainWindow, QWidget и
    QDialog. Если надо, чтобы было полноценное окно приложения с меню, панелями статуса, инструментов, то выбирается QMainWindow.

  • Header file: заголовочный файл для описания функция класса

  • Source file: файл с реализацией функционала класса

  • Generate form: указывает, будет ли генерироваться файл формы

  • Form file: имя файла формы, который будет генерироваться

При желании эти опции можно поизменять, но для первого приложения оставим все эти опции по умолчанию.

Qt Creator поставляется с инструментом Qt Linguist, который позволяет переводить приложение на разные языки. И на следующем шаге предлагается указать язык приложения.

Установка языка приложения проекта в Qt Creator

На данный момент для нас это не актуально, поэтому ничего не будем вводить и пропустим этот шаг

На следующем шаге будет предложено выбрать комплект инструментов (kit) для сборки и запуска проекта.
И в данном случае необходимо выбрать хотя бы один комплект. Например, в данном случае мы будет создавать настольное графическое приложение. Поэтому выберем пункт, название которого начинается с «Desktop».
Например, для создания графического приложения под Windows я выбираю пункт Desktop (x86-windows-msvc2022-pe-64bit)

Установка связи между комплектом и версией фреймворка Qt в Qt Creator

В зависимости от операционной системы набор комплектов может отличаться. Обычно комплекты определяются автоматически.

Однако может быть ситуация, когда в списке указаны комплекты, но они не активны, не доступны для выбора и отображаются серым цветом. В этом случае, возможно,
имеются проблемы с настройкой комплекта, как например, в следующем случае:

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

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

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

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

Оставим все поля по умолчанию и нажмем на кнопку «Finish» для создания проекта.

Установка связи между Qt и Qt Creator

Как правило, Qt Creator может автоматически подхватить установленный Qt, а также ряд дополнительных
инструментов типа CMake, компиляторов для C/C++ и других. Однако если Qt Creator устанавливается отдельно от Qt (вручную или с помощью пакетного менеджера), то может потребоваться вручную установить связь между комплектом и версией Qt. Для этого в
Qt Creator перейдем к пункту меню Tools -> External — > Configure… (или к пункту Edit-> Preferences):

Настройка связи с Qt в Qt Creator

В открывшемся окне настроек перейдем к вкладке Qt Versions. Тут должны быть указаны используемые версии Qt. Однако если
среда разработки не может автоматически подхватить фреймворк, то в окне может быть пусто:

Установка связи с Qt в Qt Creator

Если здесь пусто, нажмем на кнопку «Add» и в открывшемся окне укажем путь к утилите qmake6 (qmake6.exe на windows).
Например, в моем случае это путь «C:\Qt\6.6.1\msvc2019_64\bin». И затем нажмем на кнопку «Apply». Выше приведен пример с Windows, но те же самое характерно и для Linux/MacOS, только конкретные пути к
qmake будут отличаться.

Далее на вкладке Kits находим выбираем нужный комплект и через поле Qt Version устанавливаем для него версию ферймворка Qt

Установка связи между комплектом и версией фреймворка Qt в Qt Creator

Структура проекта

Итак, в результате Qt Creator создает проект следующего вида :

Первый проект в Qt Creator

Слева отобразится дерево проекта, а справа будет открыт файл main.cpp. По умолчанию стартовый проект состоит из следующих файлов:

  • HelloApp.pro: файл конфигурации проекта

  • mainwindow.h: заголовочный файл с описанием класса MainWindow, который представляет графическое окно

  • mainwindow.cpp: непосредственно сам функционал класса MainWindow

  • main.cpp: файл с функцией main, в которой и происходит запуск приложения Qt и его окна в виде объекта класса MainWindow

  • mainwindow.ui: xml-файл, который описывает интерфейс окна

Запуск проекта

Проект по умолчанию уже можно запустить. Для запуска проекта нажмем в Qt Creator в левом нижнем углу на зеленую стрелочку.
Стоит отметить, что при компиляции мы можем проверить вывод окна «Compile Output» — здесь могут отображать различная важная информация, например, информация о возникших ошибках:

Запуск проекта в Qt Creator

И при запуске проекта нам отобразится пустое окно приложения:

Первое приложение в Qt Creator

  1. 1. Работа с windeployqt
  2. 2. Возможные ошибки
  3. 3. Файлы, которые могут быть не собраны windeployqt
  4. 4. Если проект с использованием QML
  5. 5. Видеоурок

В

одном из уроков по Qt

уже было показано, как собрать все

DLL

, применяемые в проекте для подготовки программы к использованию на других ПК, работающих под управлением

ОС Windows

, а теперь предлагаю ознакомиться с утилитой, которая поставляется вместе с

Qt

. Данная утилита называется

windeployqt

и является консольным приложением, которое, как правило, идёт в поставке с компиляторами

MinGW

или

MSVC.

Для использования

windeployqt

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

windeployqt

соберёт все необходимые библиотеки в папке, где располагается исполняемый файл.

Утилита

windeployqt

располагается в папке

bin

, которая в свою очередь располагается в папке компилятора для Qt. Таким образом, путь к папке может быть следующим:

  • для MinGW — C:\QT\5.5\mingw492_32\bin\windeployqt.exe
  • для MSVC — C:\QT\5.5\msvc2013\bin\windeployqt.exe

Работа с windeployqt

А теперь приступим к работе с

windeployqt

. Допустим, у Вас уже имеется скомпилированный исполняемый файл и требуется собрать все необходимые для его работы DLL. Для этого сделаем небольшую подготовку и перекинем исполняемый файл в подготовленную для сбора папку. Я использую для демонстрации проект

EColor

, который написан с использованием

MinGW.

Исполняемый файл проекта будет размещён по следующему пути

D:\EColor\EColor.exe.

После чего необходимо будет открыть консоль (

cmd

), и перейти в консоле в папку с

windeployqt.

Далее запускаем утилиту передав ей путь расположения исполняемого файла, как показано на нижеследующем рисунке.

После чего утилита соберёт все необходимые для работы исполняемого файла DLL-ки. А выглядеть это будет следующим образом.

Возможные ошибки

Также стоит отметить, что не всё может пройти достаточно гладко. Например,

windeployqt,

может не найти библиотеки компилятора gcc и выдать следующую ошибку:

Cannot find GCC installation directory. g++.exe must be in the system path.

Это лечится прописыванием в переменных среды пути к папке bin, которая содержит GCC и соответствующие библиотеки.

Для этого идём по следующему направлению (пример для

ОС Windows 7

):


Панель Управления / Система / Дополнительные параметры системы / Переменные среды

После чего добавим переменную PATH в системные переменные, где будут прописаны пути к GCC и его библиотекам. В моём случае это выглядело так:

  • Имя переменной: PATH
  • Значение переменной:

    D:\AndroidQT\QT\5.5\mingw492_32\bin;D:\AndroidQT\QT\Tools\mingw492_32\bin;%PATH%

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

Файлы, которые могут быть не собраны windeployqt

Также, некоторые файлы могут быть не собраны с помощью

windeployqt

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

К примеру при сборке

DLL

для

EColor, windeployqt

всё-таки пропустила следующие файлы:

  • LIBEAY32.dll
  • MSVCP90.dll
  • MSVCR90.dll
  • MSVCR120.dll
  • ssleay32.dll

Если проект с использованием QML

UPD 19.11.2018 by

alex_lip

:

Если в проекте используется QML, то необходимо добавить специальную директиву —qmldir

Данная директива должна будет указать откуда брать исходники QML

windeployqt --qmldir f:\myApp\sources f:\build-myApp\myApp.exe

Видеоурок

Фреймверк Qt, хоть и является Open Source проектом, но активно пытается огораживать пользователей и разработчиков от свободного использования этого ПО. Менеджеры Qt постоянно придумывают различные меры, которые формально не противоречат лицензии GPL, но мешают свободно и просто устанавливать необходимые инструменты экосистемы Qt.

Одной из таких мер является Qt-аккаунт. Он бесплатен, и никаких ограничений на регистрацию в нем (пока) нет. Зачем он нужен? Ну, с некоторых пор в процедуре установки Qt-фреймверка из официального инсталлятора в обязательном порядке требуется ввод логина/пароля от Qt-аккаунта. Если Qt-аккаунта нет, установить фреймверк Qt из официального полного инсталлятора не получится. То есть, пользователь выкачивает инсталлятор размером ~4GB, в котором есть все файлы для инсталляции, но без Qt-аккаунта развернуть файлы фреймверка не может.

Однако, обойти данное ограничение все-таки можно, просто нужно знать как.

Установка Qt без запроса логина/пароля

Оказывается, запрос логина/пароля при установке Qt происходит только в случае, если инсталлятор обнаруживает доступ в интернет и видит доступными сервера компании Qt. Действительно, если нет интернета, то как проверять правильность ввода логина/пароля? Никак. А очень часто приходится ставить Qt в местах, где интернета просто не предусмотрено. В инсталляторе Qt это предусмотрели, и сделали пропуск процедуры регистрации в случае отсутствия интернет-соединения, просто этот момент никак не поясняют и не афишируют.

Таким образом, в момент инсталляции можно просто потушить интернет-соединение, и установить Qt без Qt-аккаунта. Это можно делать вручную, а можно, при необходимости, автоматизировать. В моих скриптах Ansible под Linux это происходит так:

— name: Блокировка интернет-соединения, чтобы не запрашивался Qt-аккаунт в инсталляторе

shell: |

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state —state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp —dport 22 -j ACCEPT

iptables -A OUTPUT -p tcp —dport 22 -j ACCEPT

iptables -A OUTPUT -j DROP

… команды инсталляции Qt …

— name: Разблокирование интернет-соединения

shell: |

iptables -F

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

Видно, что в этих командах остается рабочим порт SSH, остальные соединения временно перекрываются. Что-то подобное можно сделать и в Windows, это отдельный разговор. Факт в том, что при отсутствии интернет-соединения, нет необходимости в наличии логина/пароля от Qt аккаунта.

Не хочется крутить iptables? Можно просто выдернуть сетевой кабель из компьютера, установить Qt, потом вставить кабель на место. В случае WiFi соединения можно просто на время потушить это соединение.

Установка фреймверка Qt через консоль

Графический инсталлятор Qt может так же работать и в консольном режиме. Таким образом в Linux можно установить Qt из официального инсталлятора даже при отсутствии графического окружения X11. Для инсталляции в консольном режиме используется опция инсталляции —script, в которой указывается файл скрипта в формате *.qs:

cd /home/user/work/install

./qt-opensource-linux-x64-5.9.6.run —platform minimal —script install.qs

В данном скрипте описываются действия, которые должны поисходить при появлении того или иного окна инсталлятора. Скрипт пишется на языке JavaScript. Окна инсталлятора создаются «виртуально» внутри движка инсталлятора, и это позволяет выполнять действия так, как будто их выполняет пользователь.

Инсталлятор фреймверка Qt сделан с помощью инструмента Qt Installer Framework, который предназначен для создания инсталляторов к ПО. Подробнее об этом инструменте можно прочитать здесь: https://doc.qt.io/qtinstallerframework/ifw-overview.html

А формат QS-скриптов подробно описан в следующей документации: https://doc.qt.io/qtinstallerframework/noninteractive.html

Для Qt версии 5.9.6 файл скрипта install.qs может выглядеть так:

function Controller() {

installer.autoRejectMessageBoxes();

installer.installationFinished.connect(function() {

gui.clickButton(buttons.NextButton);

})

}

Controller.prototype.WelcomePageCallback = function() {

// click delay here because the next button is initially disabled for ~1 second

gui.clickButton(buttons.NextButton, 3000);

}

Controller.prototype.CredentialsPageCallback = function() {

gui.clickButton(buttons.NextButton);

}

Controller.prototype.IntroductionPageCallback = function() {

gui.clickButton(buttons.NextButton);

}

Controller.prototype.TargetDirectoryPageCallback = function()

{

gui.currentPageWidget().TargetDirectoryLineEdit.setText(«/opt/qt_5_9_6»);

gui.clickButton(buttons.NextButton);

}

Controller.prototype.ComponentSelectionPageCallback = function() {

var widget = gui.currentPageWidget();

widget.selectAll();

// Можно выбирать компоненты отдельно

// widget.selectComponent(«qt.55.gcc_64»);

// widget.selectComponent(«qt.55.qtquickcontrols»);

// И можно отключать компоненты отдельно

// widget.deselectComponent(«qt.tools.qtcreator»);

// widget.deselectComponent(«qt.55.qt3d»);

// widget.deselectComponent(«qt.55.qtcanvas3d»);

// widget.deselectComponent(«qt.55.qtlocation»);

// widget.deselectComponent(«qt.55.qtquick1»);

// widget.deselectComponent(«qt.55.qtscript»);

// widget.deselectComponent(«qt.55.qtwebengine»);

// widget.deselectComponent(«qt.extras»);

// widget.deselectComponent(«qt.tools.doc»);

// widget.deselectComponent(«qt.tools.examples»);

gui.clickButton(buttons.NextButton);

}

Controller.prototype.LicenseAgreementPageCallback = function() {

gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);

gui.clickButton(buttons.NextButton);

}

Controller.prototype.StartMenuDirectoryPageCallback = function() {

gui.clickButton(buttons.NextButton);

}

Controller.prototype.ReadyForInstallationPageCallback = function()

{

gui.clickButton(buttons.NextButton);

}

Controller.prototype.FinishedPageCallback = function() {

var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;

if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {

checkBoxForm.launchQtCreatorCheckBox.checked = false;

}

gui.clickButton(buttons.FinishButton);

}

Опция —platform задает плагин, который используется при инсталляции. Для консольной инсталляции указывается плагин minimal.

Более подробно об опциях инсталлятора в консольном режиме (Command Line Interface) написано здесь: https://doc.qt.io/qtinstallerframework/ifw-cli.html

* * *

Хинт! Ссылки на прямое скачивание инсталлятора Qt для различных версий фреймверка и различный аппаратные платформы можно найти в статье:

Прямые ссылки на оффлайн-инсталлятор Qt версий 5.12.x

Данные ссылки активны на январь 2021 года.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 10 корпоративная это как
  • Windows 10 не дает прав администратора
  • Как установить пасьянс косынка на windows 10
  • Как установить пароль на компьютере при входе windows 7 профессиональная
  • Postgresql manager for windows