Для быстрой разработки кроссплатформенных приложений весьма просто ставится в Linux, но в Windows с ним приходится немножко повозиться.

С сайта Nokia можно скачать уже скомпилированную библиотеку, но в предлагаемом виде она удобна разве что поиграться долгими зимними ночами. Дело в том, что функции, хранящиеся в файле с раширением dll (динамически подключаемые библиотеки) могут присоединяться к конечной программе двумя способами. Первый способ называется динамическим (dynamic). При его использовании код функций остается в dll’ке, благодаря чему размер скомпилированной програмы достаточно мал. Но при переносе экзешника на другой компьютер понадобится тащить и dll, суммарный размер которых в случае с Qt как правило больше 100 МБ. Второй метод компиляции - статический (static). При его использовании надобность в отдельных библиотеках отпадает: код необходимых функций встраивается непосредственно в exe-файл. И надо ж было сделать, что предлагаемый инсталлятор Qt SDK поддерживает только динамическую линковку библиотек. Чтобы исправить ситуацию нужно перекомпилировать Qt, чем сейчас и займемся.

Загрузка компонент

По ссылке http://qt.nokia.com/downloads выбираем лицензию GPL и смотрим на колонку, озаглавленную Qt: Framework Only . Можно использовать компилятор Visual Studio, но более общим может показаться компиляция с помощью MinGW - аналога gcc под Windows, которая дальше и будет рассматриваться. О компиляции с помощью Visual Studio можно узнать по следующей ссылке: http://qt.nokia.com/doc/4.6/install-win.html . Итак, переходим по соответствующей ссылке и качаем файл, содержащий в названии слово «src». Полученный архив распаковываем в C:\Qt\, где - номер скачанной версии Qt, 4.6.0 в моем случае (далее этот путь будет обозначен как ). Иной каталог выбирать не стоит, так как говорят , что в иных каталогах компиляция обламывается.

Для дальнейшей комфортной работы также понадобится Qt Creator, доступный по вышеприведенной ссылке на сайт Нокии.

Так же грузим онлайн-инсталлятор MinGW отсюда: . Установим его, например, в C:\MinGW (далее этот путь будет обозначен как ). Отсюда же грузим отладчик gdb последней версии. Из архива tar.gz или tar.bz2 извлекаем каталог bin\ в .

Компиляция

Так как нам нужна статическая линковка, в файле QTDIR\mkspecs\win32-g++\qmake.conf находим строку, по виду подобную
QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
и дописываем после равно ключ -static:
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

Update 26/03/2013. Версия Qt 5.0.1 требует установленного в системе интерпретатора Perl и Python. Для этого был установлен Strawberry Perl и Python 2.7 , а батник, описываемый ниже, был модифицирован.

В каталоге QTDIR создадим батник с именем QtInstall.bat, устанавливающий необходимые переменные окружения со следующим содержимым:

SET QTDIR=c:\Qt\5.0.1\ SET MINGWDIR=c:\MinGW\ SET QMAKESPEC=win32-g++ SET PERLDIR=c:\strawberry\perl\ SET PYTHONDIR=c:\Python27\ SET PATH=%QTDIR%\bin;%MINGWDIR%\bin;%PERLDIR%\bin;%PYTHONDIR%;%SystemRoot%\System32

Запустим его. Конфигуратор компилятора запускается командой configure в открывшейся консоли. Полный список её параметров вызывается ключом -help:
configure -help
Я использовал следующие ключи:
configure -debug-and-release -static -no-exceptions -no-accessibility -qt-libtiff -qt-libmng -qt-libjpeg -qt-sql-sqlite

Update 26/03/2013. Для версии 5.0.1 использовалась команда configure -debug-and-release -static -no-accessibility -opensource -qt-libjpeg -qt-libpng -qt-sql-sqlite -nomake examples -opengl desktop
Добавление ключа -qt-sql-mysql привело к ошибке компиляции.
Конфигуратор предложит выбрать лицензию, согласиться с ней и пошебуршит минут 10-20.

Теперь можно начинать компиляцию командой
mingw32-make
Она потребует порядка 25 ГБ свободного места на диске и около 10 часов машинного времени на не очень сильных машинах. Большую часть указанных гигабайт занимают примеры, которые тоже будут компилироваться, при чем в двух вариантах: отладочный (будет лежать в каталоге debug\ внутри каталога с примером) и релизный (каталог release\ там же). Отладочные в среднем весят около 100 МБ и в примерах совершенно не нужны. Почистив от них каталоги \examples и \demos конечный размер уменьшится до 8,5 ГБ.

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


В теории для случая MinGW достаточно указать параметр –j[число процессов компиляции] у команды сборки make, которая в QtSDK MinGW представлена mingw32-make. Например, получается команда mingw32-make.exe –j10.

Рекомендуемое число процессов компиляции составляет число процессоров+1. Если параметр не задается, то считается, что j=1. Если указать слишком большое число также ничего страшного не случится. Make запустит ровно столько, сколько дает прирост производительности.

Для удобства можно воспользоваться переменной окружения %NUMBER_OF_PROCESSORS%, которая показывает число процессоров в системе. Получается команда вида

Mingw32-make.exe –j%NUMBER_OF_PROCESSORS%

Однако, не все так просто. Qmake создает три make-файла. Общий Makefile, который по определенным define’ам выбирает из Makefile.Debug и Makefile.Release в зависимости от сборки релиза или дебага. Дело в том, что параметр –j не наследуемый . И когда в QtCreator вызывается make, то он вызывается для Makefile. А вот до Makefile.Debug или Makefile.Release уже не добирается.

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

Mingw32-make.exe –j9 –f Makefile.Debug.

Не очень удобно, но прирост скорости сборки это сильно компенсирует. Для примера, пересборка нашего проекта на core-i7-2630 без распараллеливания осуществляется за 12 минут, с флагом –j9 сборка занимает менее двух минут. Прирост производительности в шесть раз заставляет задуматься.

Но даже после указания таких флагов сборки у нас на двух машинах это стало работать, а на двух нет. На форумах пишут, что дело может быть в версии Qt, в кривости mingw, в особенностях работы qmake, версии ОС. Однако, конфигурации наших машин таковы, что методом исключения можно сделать вывод о непричастности версий QtSDK, QtCreator, Windows или разрядности системы ко всему этому.

Решение оказывается очень простым, но в тоже время не таким очевидным. Нужно добавить абcолютный путь к mingw32-make в переменную окружения PATH. На всякий случай, лучше поставить точку с запятой после пути. И после этого чудесным образом начинает работать параллельная компиляция, а программистам не придется по 10 минут отвлекаться каждый раз при добавлении какого-нибудь Q_OBJECT к проекту и его пересборке.

Все эти флаги компиляции могут быть заданы в QtCreator на вкладке Проекты в параметрах make.

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

UPD (из комментариев) : Что касается Linux/MacOS пользователей, им повезло гораздо больше - достаточно только ключа -jX.

Также если вы используете компилятор MSVC, то проблем быть не должно.

В случае QtCreator нужно добавить запись
QMAKE_CXXFLAGS_RELEASE += -MP[число процессов]
в.pro файл проекта и установление переменной окружения как я описал.

В случае Visual Studio свойствах VS проекта: «Properties»=>«Configuration Properties»=>«C/C++»=>«Command Line». А в поле «Additional options» дописать -MP[число процессов]. Спасибо IGHOR

Также при использовании компилятора MSVC помочь может jom.

Постоянную часть флагов можно вынести в отдельную переменную окружения MAKEFLAGS. Make сам возьмет оттуда установленные флаги. К примеру MAKEFLAGS=-j10. А в параметрах make остается только не забыть указать файл для сборки. Например, -f Makefile.Debug. Если вы все время собираете одну версию, то можно вынести все флаги целиков в MAKEFLAGS и забыть про настройку будущих проектов.

Спасибо всем за дополнения.

Для работы с Qt 4-й версии необходимо все компоненты устанавливать отдельно (В 5-й версии Qt это недоразумение было исправлено). Для работы потребуется три программы:

  • MinGw 4.8.2 - это Linux-утилиты для среды Windows. В состав входит C++ компилятор, именуемый g++;
  • Qt 4.8.6 - это непосредственно сам SDK 4-й версии (актуально на момент написания этой статьи);
  • Qt Creator 4.0.2 - это среда разработки.

Каждый компонент устанавливается в отдельный каталог. Я использую каталоги:

C:\tools\qt\mingw_4_8_2

C:\tools\qt\qt_4_8_6

C:\tools\qt\qt_creator_4_0_2

Но можно использовать любые.

Последовательность установки: MinGW - Qt - Qt Creator.

Утилиты MinGw 4.8.2

В момент инсталляции указывается каталог типа C:\tools\qt\mingw_4_8_2 .

Qt 4.8.6

Сам Qt SDK версии 4.8.6 берется здесь:

Если нет Microsoft Visual Studio, то нужна версия Qt для компилятора MinGw. В имени инсталлятора должны присутсвовать буквы mingw . Прямой линк на Qt 4.8.6 для MinGw:

В момент инсталляции указывается каталог типа C:\tools\qt\qt_4_8_6 .

Кроме каталога инсталляции, инсталлятор запросит каталог, в котором находится компилятор MinGw:

Нужно указать каталог, куда был установлен MinGw: C:\tools\qt\mingw_4_8_2 .

Qt Creator 4.0.2

Qt Creator 4.0.2 берется со страницы:

Прямой линк на загрузку:

В момент инсталляции указывается каталог типа C:\tools\qt\qt_creator_4_0_2 .

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

В Qt Creator первым делом необходимо зайти в Инструменты - Параметры - Сборка и запуск - Вкладка "Профили Qt" . Там нужно нажать кнопку "Добавить", задать имя профиля "Qt 4.8.6", и указать месторазмещение файла qmake.exe . Он находится в подкаталоге /bin каталога, куда был установлен Qt 4.8.6:

Нажав кнопку "Подробнее", нужно посмотреть, какое ABI использует эта сборка Qt 4.8.6. Эта информация потребуется ниже.

Далее нужно переключиться на вкладку "Компиляторы" . Нажимается нопка "Добавить", вводится название "MinGW 4.8.2", и указывается месторазмещение исполняемого файла компилятора g++, который находится в подкаталоге /bin каталога, куда был установлен MinGW.

Внимание! Нужно указывать именно файл g++! В том же каталоге есть файл c++, и если его указать, то ничего не заработает.

Так же нужно проверить, чтобы строка ABI соответствовала ABI, который был записан для сборки Qt. Если строка не соответствует, ее надо исправить путем выбора пункта "<особое>" в выпадающем списке и выбра нужных пунктов в последующих выпадающих списках.

Внимание! На низких разрешениях мониторов окно настройки может быть узким, и в него не будут влазить выпадающие списки -pe и -32bit (как на картинке выше). В этом случае, надо временно расширить окно, утащив левую часть окна за пределы монитора, и сделать правильную настройку.

Иногда, если на вкладке "Профили Qt" возле конфигурации Qt стоит красный значек с восклицательным знаком, и при этом ABI в выпадающем списке вкладки "Компиляторы" соответствует ABI вкладки "Профили Qt", то становится непонятно в чем проблема. На самом деле это небольшой глюк креатора. Чтбы его обойти, нужно в настройке ABI выбрать пункт "<особое>", и настроить вручную сегменты ABI выпадающими списками.

На этом настройка закончена. Теперь при открытии/создании проектов в Qt Creator можно добавлять конфигурацию Qt 4.8.6 путем нажатия кнопки "Добавить":

Доброго времени суток дорогой читатель и подписчик моего проекта, в данной статье мы с вами по шагам разберем как правильно установить QT creator под 32х и 64х разрядную систему под разные версии компилятора и отладчика от разных фирм производителей. В данной статье мы разберем как правильно установить компилятор MinGW с отладчиком(дебагером) под 32х разрядную систем и MSVS компилятор с дебагером под 64х разрядную систему. К данной статье также будет прилагаться видео в котором я показываю как все это можно установить. В видео соблюден немного неправильный порядок установки так как изначально для тестов планировалось установить только 32х разрядную версию компилятора с дебагером. Итак начнем.

Первое в чем вам необходимо убедиться, это то что у вас уже установлена Visual Studio с компилятором С++ 2013 или 2015 года. Только после этого вы можете переходить к следующим пунктам которые указаны ниже.

  1. Установка SDK для Windows.

Для того чтобы вам начать инсталляцию под 2 разных компилятора с отладчиком(дебагером). Вам изначально потребуется установить пакет SDK под вашу версию ОС Windows для Visual Studio. В моем случае это пакет SDK под Windows 8.1 который с легкостью можно найти в интернете по первым позициям поиска на запрос скачать пакет SDK для (указывает версию вашей ОС Windows). Поиск к примеру можно делать в гугл поисковике. Пример в виде скриншота прикреплен ниже.

Для перехода в гугл поиск нажмите на картинку и скачайте подходящую версию для вашей ОС Windows. В моем случае поиск идет для Windows 8.1

После того когда вы определились с конкретной версией вашего пакета SDK и скачали установщик. Запустите его установку и проинсталлируйте как показано на картинках ниже. В моем случае я установил полный пакет SDK с расчетом на будущее и так как мне память компьютера позволяет, сразу хочу предупредить что для QT будет использоваться только отладчик(дебаггер) из данного пакета. То есть вы можете просто убрать все галочки при инсталляции оставив только одну напротив дебаггера.

Запуск инсталлятора SDK для Windows 8.1

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

Подтверждение лицензионного соглашения данного пакета SDK

Здесь необходимо выбрать какой комплект вы хотите проинсталлировать под вашу ОС. Для QT достаточно одного отладчика(дебаггера). После того как вы определились с вашим минимальным комплектом SDK смело нажимайте кнопку install . После нажатии кнопки инсталляции вам останется только немного подождать и завершить инсталляцию SDK. После этого можно переходить к следующему пункту - это установка QT Creator под разные архитектуры.

2. Установка QT Creator + компиляторы с отладчиком

Для того чтобы установить QT Creator под разные компиляторы, вам понадобится скачать онлайн установщик QT с официального сайта. Скачать можно . После того как вы скачаете файл QT, вам его необходимо запустить и следовать дальнейшей инструкции.

Окно приветствия онлайн установщика QT, здесь мы просто нажимаем кнопку далее.

Чуть ниже вы видите окно регистрации в проекте QT. Здесь вы можете либо оставить все поля пустыми нажав клавишу skip тем самым пропустив процесс регистрации, либо заполнить поля авторизации если у вас уже есть аккаунт QT, либо можете создать новый. На данном этапе я просто нажал кнопку skip для продолжения установки без регистрации в QT.

В следующем окне у нас просто просят подтверждения на установку QT. Здесь просто нажимаем далее и ждем пока QT загрузит необходимые файлы для инсталляции.

Окно подтверждения установки QT Creator. Здесь просто нажимаем далее.

После того как QT подгрузил все необходимые метаданные, QT нас просит выбрать каталог куда вы хотите проинсталлировать сам QT Creator. ВАЖНО: QT НЕ ДРУЖИТ С РУССКИМИ БУКВАМИ В ПУТИ, ДАБЫ ИЗБЕЖАТЬ ОШИБОК ПРИ ИНСТАЛЛЯЦИИ И В РАБОТЕ С ПРОЕКТАМИ, ВЫБИРАЙТЕ ПУТЬ УСТАНОВКИ БЕЗ СОДЕРЖАНИЯ РУССКИХ СИМВОЛОВ В ПУТИ УСТАНОВКИ! В моем случае я QT установил корневую папку диска C://qt.

Выбор папки куда вы хотите проинсталлировать QT. После того как вы выбрали куда будете инсталлировать QT, вам необходимо нажать далее.

В следующем окне установщика вам будет предложено выбрать несколько различных версий QT и компиляторов под эти версии, при установке я выбирал самые последние версии 5.9 beta 3, 5.8 и 5.3. От всех остальных версий я отказался. Также при установке у меня автоматически QT определила что необходимо проинсталлировать QT с компилятором MSVC под 64 разрядную систему, чтобы была возможность компиляции и под 32 разрядную архитектуру, я дополнительно установил компилятор MinGW в каждой из предложенных мне ранее версий, все остальное я оставил так как мне предлагал установщик QT.

Окно выбора необходимых компонентов инсталляции. После того как вы определились с необходимым набором компонентов для QT смело нажимаем далее.

После этого у вас откроется окно с подтверждением что вы согласны с лицензионным соглашением.

Окно подтверждения лицензионного соглашения, делаем все как на скриншоте.

Далее у вас будет окно выбора папки в меню пуск в которой будут храниться все ваши ярлыки от QT. Если вы устанавливаете QT первый раз, то вам необходимо оставить настройки по умолчанию и нажать кнопку далее.

Окно выбора папки в меню пуск. При первой установке QT оставляем все по умолчанию.

Далее QT запросит у вас последнее подтверждение на инсталляцию. Прежде чем вы нажмете кнопку установить я настоятельно рекомендую убедиться что у вас на жестком диске места больше того которое QT запрашивает для установки хотя бы процентов на 10%. Это необходимо для стабильной работы QT во время создания различных программ в дальнейшем. Также необходимо убедиться в том что у вас сейчас есть стабильное подключение к интернету и у вас хватает интернет трафика для скачивания всех необходимых файлов для дальнейшей инсталляции. После нажатия кнопки установить, у вас начнется загрузка и инсталляция QT.

Последнее окно подтверждения установки, после которого у вас начнется загрузка необходимых компонентов с интернета и их инсталляция. Все что вам останется сделать — это подождать и в конце после установки закрыть окно после сообщения об успешной установке QT creator.

3. Установка плагина для Visual Studio 2015

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

Установка QT плагина для Visual Studio. Здесь вам необходимо выбрать перед скачиванием плагин подходящий под вашу QT и вашу версию Visual Studio из тех которые выделены красной рамкой. После выбора необходимого плагина скачайте его и запустите на установку.

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

Установщик плагина для Visual Studio. Убедились что наш плагин увидел нашу студию. После этого нажимаем на кнопку установить плагин.

После нажатия на кнопку инсталляции немного ожидаем.

Процесс установки плагина для Visual Studio.

После того как плагин проинсталлируется у вас появится окно об окончании успешной установки.

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

4. Проверка успешной установки компиляторов и отладчиков для QT

Для того чтобы убедиться в том что компилятор и отладчик установился корректно, вам необходимо пройти по следующему пути в QT. Инструменты —> Параметры —> Сборка и запуск —> Комплекты. У вас не должно быть ни одного красного и желтого восклицательного знака. Это будет говорить об успешной инсталляции QT + компиляторов с отладчиком.

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

5. Проверка успешной установки плагина в Visual Studio

При успешной установке плагина у вас в студии должно появиться дополнительное меню от QT как показано на скриншоте ниже.

Пример успешной установки плагина от QT.

Настройка Qt Creator

На вкладке Сборка и запуск > Основное указываем каталог проектов, например, /home/login/Qt/qt-proj (этот каталог надо заблаговременно создать). На вкладке Текстовый редактор > Поведение назначаем Кодировкам файлов > По умолчанию значение UTF-8 .

Настройка инструментов

Qt 5 .

Выбираем вкладку Сборка и запуск > Компиляторы

Имя: Система GDB в /usr/bin/gdb
Путь: /usr/bin/gdb
Тип: GDB
ABI: x86-linux-generic-elf-unknown
Версия: 7.7.1

/home/login/Qt/Qt5/5.5/gcc/bin/qmake . В названии профиля прописываем, например, Qt 5.5.1 GCC 32bit .

На вкладке Сборка и запуск > Основное указываем каталог проектов, например, C:\Qt\qt-proj (этот каталог надо заблаговременно создать). На вкладке Текстовый редактор > Поведение назначаем Кодировкам файлов > По умолчанию значение windows-1251 / CP1251 .

Настройка инструментов

Предполагается, что у Вас уже установлена библиотека Qt 5 с MinGW и собран отладчик GDB .

Выбираем вкладку Сборка и запуск > Компиляторы , нажимаем кнопку Добавить > MinGW и указываем путь к компилятору C:\Qt\Qt5.5.1\Tools\mingw492_32\bin\g++.exe . В названии прописываем, например, MinGW 4.9.2 (x86 32bit) .

На вкладке Отладчики (здесь же) нажимаем кнопку Добавить и в свойствах нового отладчика указываем

Имя: GDB 7.10
Путь: C:\Qt\qtcreator-gdb-7.10\gdb-i686-pc-mingw32.exe

Далее выбираем вкладку Qt Versions , нажимаем кнопку Добавить ... и указываем путь к установленной заранее библиотеке Qt C:\Qt\Qt5.5.1\5.5\mingw492_32\bin\qmake.exe . В названии профиля прописываем, например, Qt 5.5.1 MinGW 4.9.2 .
Теперь можно создать связку инструментов. Выбираем вкладку Комплекты , нажимаем кнопку Добавить и в свойствах новой связки указываем

Qt 5 и MSVC 2010

Предполагается, что у Вас уже установлена библиотека Qt 5 с MSVC 2010 и инструментарий Windows SDK for Windows 7 .

Выбираем вкладку Сборка и запуск > Компиляторы и убеждаемся, что среди обнаруженных имеется компилятор, обладающий свойствами

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

Далее выбираем вкладку Qt Versions , нажимаем кнопку Добавить ... и указываем путь к установленной заранее библиотеке Qt D:\Qt\Qt5.5.1-vs\5.5\msvc2010\bin\qmake.exe . В названии профиля прописываем, например, Qt 5.5.1 MSVC 2010 .
Теперь можно создать связку инструментов. Выбираем вкладку Комплекты , нажимаем кнопку Добавить и в свойствах новой связки указываем

Закрываем окно Параметры , нажав кнопку OK .