как установить qmake windows
Qt Documentation
Contents
This tutorial teaches you the basics of qmake. The other topics in this manual contain more detailed information about using qmake.
Starting Off Simple
Let’s assume that you have just finished a basic implementation of your application, and you have created the following files:
We’ll add the source files to the project file first. To do this you need to use the SOURCES variable. Just start a new line with SOURCES += and put hello.cpp after it. You should have something like this:
We repeat this for each source file in the project, until we end up with the following:
If you prefer to use a Make-like syntax, with all the files listed in one go you can use the newline escaping like this:
Now that the source files are listed in the project file, the header files must be added. These are added in exactly the same way as source files, except that the variable name we use is HEADERS.
Once you have done this, your project file should look something like this:
The finished project file should look like this:
You can now use qmake to generate a Makefile for your application. On the command line, in your project directory, type the following:
Then type make or nmake depending on the compiler you use.
For Visual Studio users, qmake can also generate Visual Studio project files. For example:
Making an Application Debuggable
The release version of an application does not contain any debugging symbols or other debugging information. During development, it is useful to produce a debugging version of the application that has the relevant information. This is easily achieved by adding debug to the CONFIG variable in the project file.
Use qmake as before to generate a Makefile. You will now obtain useful information about your application when running it in a debugging environment.
Adding Platform-Specific Source Files
A simple scope that adds the platform-dependent file for Windows looks like this:
When building for Windows, qmake adds hellowin.cpp to the list of source files. When building for any other platform, qmake simply ignores it. Now all that is left to be done is to create a scope for the Unix-specific file.
When you have done that, your project file should look something like this:
Use qmake as before to generate a Makefile.
Stopping qmake If a File Does Not Exist
You may not want to create a Makefile if a certain file does not exist. We can check if a file exists by using the exists() function. We can stop qmake from processing by using the error() function. This works in the same way as scopes do. Simply replace the scope condition with the function. A check for a file called main.cpp looks like this:
Use qmake as before to generate a makefile. If you rename main.cpp temporarily, you will see the message and qmake will stop processing.
Checking for More than One Condition
Suppose you use Windows and you want to be able to see statement output with qDebug() when you run your application on the command line. To see the output, you must build your application with the appropriate console setting. We can easily put console on the CONFIG line to include this setting in the Makefile on Windows. However, let’s say that we only want to add the CONFIG line when we are running on Windows and when debug is already on the CONFIG line. This requires using two nested scopes. First create one scope, then create the other inside it. Put the settings to be processed inside the second scope, like this:
Nested scopes can be joined together using colons, so the final project file looks like this:
That’s it! You have now completed the tutorial for qmake, and are ready to write project files for your development projects.
В© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.
Обзор API
Статьи о Qt
Примеры
Содержание
Настройка проекта qmake
Инструмент 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
Qt Creator позволяет вам иметь несколько версий Qt, установленных на вашем персональном компьютере, и использовать разные версии для каждого из ваших проектов.
Если Qt Creator находит qmake в переменной окружение PATH, то он использует эту версию. Эта версия Qt называется Qt в PATH. Если вы намерены использовать только одну версию Qt и она уже в вашей переменной PATH и правильно настроена для использования из командной строки, вам не надо настраивать версию Qt вручную.
Windows
Чтобы добавить профиль Qt для MinGW:
Чтобы добавить профиль Qt для компилятора Microsoft Visual C++:
Если вы используете Qt для Symbian и ваш Symbian SDK зарегистрирован с devices.exe, Qt Creator автоматически определит эту версию Qt. Чтобы добавить профиль Qt для Symbian:
Вам не надо указывать этот путь, если компилятор находится в каталоге, включённом в переменную окружения PATH.
Замечание: Вам необходим установленный Carbide C++ версии 2.0 или более поздней версии.
Компиляция проекта в Linux
Для компиляции проекта в Qt Creator в Linux используется GNU Compiler Collection (GCC). В качестве легкой замены для GCC поддерживается Intel Compiler Collection (ICC).
Для добавления профиля Qt:
Компиляция проекта в Mac OS X
Для компиляции проекта в Qt Creator в Mac OS X используется GNU Compiler Collection (GCC), который является частью Xcode.
Для добавления профиля Qt:
Добавление внешних библиотек в проект qmake
Qt Creator может поддерживать дополнение кода и подсветку синтаксиса для внешних библиотек как если бы они были бы частью текущего проекта или библиотеки Qt.
Для добавления внешней библиотеки:
Дополнение кода и подсветка синтаксиса будут работать как только ваш проект успешно соберется и слинкуется с внешней библиотекой.
KNZSOFT Разработка ПО, консультации, учебные материалы
Князев Алексей Александрович. Независимый программист и консультант.
Установка бесплатных средств разработки для C++ под Windows. Qt(QMake/CMake) + MinGW
Дата написания статьи: 2014-08-11
Дата последней правки: 2014-08-13
Введение
Установка средств разработки Qt на Windows может сопровождаться рядом сложностей, которые могут оказаться непреодолимыми для новичков, не знающих некоторые особенности использования Qt и тех средств инсталляции, которые можно найти на различных ресурсах Интернет.
Прежде всего, следует знать, что, для разных платформ, Qt распространяется на основе разных лицензий. Под Windows, на текущий момент, предлагаются как платная, так и бесплатная лицензия. После того, как компания Nokia продала в компанию Digia права на разработку платформы Qt (компания Nokia занималась разработкой Qt с 2008 по 2012 годы), бесплатная ветка Qt существенно обособилась и стала выставляться с отдельного ресурса. Сейчас, с целью предоставления клиентам наиболее полной информации о различных вариантах использования продукта, планируется объединение ресурсов, предоставляющих платные и бесплатные средства Qt. Кроме того, планируется объединение средств инсталляции для пакетов с разными лицензиями. Выпуск первого такого инсталлятора планируется на сентябрь 2014 года.
Все нововведения будут относиться к версии Qt5, в то время как версия Qt4 уже давно не интересует производителей и именно с ней, для некомерческих предложений, и существует ряд проблем установки под Windows.
В традициях, для версии Qt4, библиотека поставлялась в виде наборов, которые могли содержать, в разных комбинациях, следующие средства.
К сожалению, не всегда в обозначение инсталлятора входят содержащиеся в нем средства. Именно это может смутить новичков, особенно, при невнимательном использовании инсталлятора. Обозначенные в инсталляторе средства могут указывать на его зависимость от этих средств. Так, например, если у инсталлятора стоит пометка (VS 2010), то многим понятно, что в этом инсталляторе содержатся средства для разработки в связке с Microsoft Visual Studio 2010, которая должна быть предварительно установлена. Однако, если у инсталлятора стоит пометка (MinGW 4.8.2), то, так как инструментарий MinGW распространяется свободно, то не очевидно, содержится в этом инсталляторе MinGW или нет. И действительно, есть инсталляторы, которые содержат и которые не содержат внутри себя MinGW. В последних, на одной из страниц визарда, может стоять ссылка на скачивание и установку MinGW, которая может оказаться устаревшей. Так, если зайти на оригинальный ресурс, Qt-Project, где официально предлагается для скачивания Qt4 SDK с бесплатной лицензией, то мы столкнемся с отсутствием средств MinGW в соответствующем инстялляторе для версии Qt4. Фактически, с официального ресурса мы установим нерабочие средства разработки, если сами не доработаем их до требуемого состояния.
Системы сборки QMake и CMake
Традиционно, проекты Qt поддерживаются нативной системой сборки QMake, которая поставляется со всеми дистрибутивами, однако, из-за ряда проблем, связанных с использованием QMake, разработчики, работающие с Qt, все чаще используют систему сборки CMake, которая не содержит проблем QMake и формирует информативную сборку (с отображением процента исполнения), что очень удобно для больших проектов, сборка которых может занять значительное время (особенно при сборке на виртуальных компьютерах).
Инструменты компиляции — MinGW и средства от Microsoft
Система фреймворков и библиотек классов Qt поддерживает две системы компиляции:
Средства разработки GNU для платформы Windows, можно получить в пакете, который называется MinGW (Minimalist GNU for Windows). Сегодня, согласно оригинальному ресурсу предоставляющему MinGW, в пакет входят следующие портированные компоненты.
Использование средств разработки от Microsoft для проектов Qt, предполагает установленную среду разработки Microsoft Visual Studio со средствами компиляции с языка C++. Если нет специального требования на использование компиляторов Microsoft, то удобно будет воспользоваться бесплатными средствами разработки. При выборе инсталлятора средств разработки Qt, обратите внимание на тип компилятора, для которого они предназначены.
Добавление путей к системной переменной PATH
При выполнении установки требуемых средств разработки, указанных ниже, может понадобиться добавление путей на директории установки этих средств к значению системной переменной PATH. Это можно выполнить следующим образом.
Последовательность шагов
Использование данного инсталлятора отличается простотой, в том плане, что не требуется пользовательская установка со сложным выбором средств, которые требуются для конечной работы. К сожалению, устанавливая Qt для Windows я сталкивался с инсталляторами, которые содержат ошибки в зависимостях установки опций, и которые решаются установкой совершенно нелогичных флажков). В данной версии инсталлятора следует заметить только одну особенность. Он не содержит в себе MinGW в явном виде, и, вместо этого, на последней странице, перед запуском установки, сообщает о том, что для его работы нужен установленный MinGW и просит указать директорию его установки. Также, он предлагает ссылку, по которой можно попробовать установить MinGW, но, с учетом того, что инсталлятор Qt4 уже довольно старинный артефакт, а ссылки на ресурсы Интернет, могут меняться, то лучше подготовить установку MinGW предварительно, как мы и сделали на предыдущем шаге.
Если мы будем использовать сборку из командной строки, не используя средств разработки, то следует добавить путь на QtSDK в системную переменную PATH. Так же, это может потребоваться для работы CMake при наличии нескольких установленных версий Qt SDK. При наличии нескольких установленных версий Qt SDK в системных путях должен быть путь только на одну из версий — таким образом можно будет выполнять переключение используемых версий вне возможностей сред разработки, которые под каждую настроенную сборку автоматически формируют набор переменных окружения с требуемыми значениями.
Каждая из установок Qt SDK характеризуется &quuot;своим» экземпляром утилиты qmake.exe. Именно она знает где лежит все то, что необходимо для сборки проекта под данную версию Qt. Поэтому, путь на Qt SDK характеризуется путем на размещение ее экземпляра qmake.exe. В моем случае, это был путь C:\Qt\4.8.6\bin.
Проверка установленных инструментов
Создайте отдельную директорию. Например, директорию test. В этой директории создайте файл main.cpp со следующим содержимым.
Это код простейшей бесполезной оконной программы на Qt. После компиляции этого кода мы получим приложение, представляющееся на экране пустым окном с системными кнопками — свернуть, развернуть и закрыть.
Далее, продемонстрируем сборку данной программы средствами QMake и CMake. Пример является минимальным и совершенно корректным с точки зрения Qt4, поэтому любая ошибка в его сборке, фактически будет указывать на отсутствие того или иного инструмента. Чаще всего это будет означать отсутствие путей на инструмент или неправильную запись этого пути. Так же помните, что после редактирования системной переменной PATH требуется перезапустить приложение, в котором вы собираетесь использовать изменение значения системной переменной. Именно при запуске приложения формируется его окружение (environment) из текущих значений всех системных переменных операционной системы. Исключение из такого поведения я встречал только в Mac OS X.
Сборка с использованием QMake
Система сборки QMake является нативной для сборки Qt-проектов, поэтому пользоваться qmake очень просто. Она самостоятельно может создать файла проекта и сгенерировать по этому проектному файлу сценарий сборки под текущую конфигурацию вычислительно системы.
Откройте в директории нашего простейшего проекта консоль и выполните следующий набор команд. Знак ‘>’ является знаком приглашения к вводу команд в консоли Windows.
Следующая команда «qmake» выполняет формирование сценария сборки для утилиты «make» на основе проектного файла, созданного предыдущей командой. После ее выполнения будет сформирован файл сценария «Makefile».
Далее, команда «mingw32-make», выполняет созданный на предыдущем шаге сценарий из файла «Makefile». Результатом выполнения созданного сценария будет исполняемый файл test.exe созданный в поддиректории debug. При запуске данного файла должно будет открыться пустое окно приложения.
Сборка с использованием CMake
Система сборки CMake, к сожалению, не является такой автоматизированной, как QMake, но обладает, тем не менее, рядом преимуществ.
Проектный файл системы CMake для любого проекта носит фиксированное название CMakeLists.txt. Для нашего простого проекта его придется писать самому. Создайте в директории с файлом main.cpp файл CMakeLists.txt и заполните его следующим содержимым. Строки, начинающиеся со знака решетки (комментарии) можно не писать.
Чтобы не засорять текущую директорию множественными файлами с побочными продуктами компиляции, создадим отдельную директорию build для выполнения компиляции. Директория build должна содержаться в той же директории, что и файл проекта CMakeLists.txt. Зайдем в созданную директорию build и выполним в ней следующую команду cmake.
Ключ -G используется для указания генератора, который должен быть использован для создания сценария сборки. CMake поддерживает большое количество разных генераторов, которые могут быть использованы для создания сценариев сборки под различные известные среды разработки на разных платформах. В том числе, C++ Builder, MS Visual Studio, Eclipse и пр. По умолчанию, для разных платформ предлагаются разные генераторы. Если запустить cmake под *nix, то генератором по-умолчанию будет генератор с именем «Unix Makefiles», который формирует сценарий сборки для утилиты GNU make. Если запустить cmake.exe под Windows, то генератором по-умолчанию будет генератор «NMake Makefiles», формирующий сценарий сборки под утилиту nmake, входящей в состав инструментов сборки от Microsoft. Так как нам нужно создать сценарий сборки под средства, предоставляемые системой MinGW, то необходимо указать соответствующий генератор.
Следующим параметром запуска утилиты, является параметр, обозначаемый в виде двух точек. Этот значок является синонимом родительской директории, пришедшей в современный Windows из *nix через DOS. В утилиту cmake.exe следует передать директорию с файлом проекта, а в нашем случае, для сборки в директории build, такой директорией будет родительская директория.
В результате выполнения этой команды будет создан файл сценария Makefile, который, как и в случае с использованием QMake, можно будет выполнить командой mingw32-make.
Установка Qt под Windows при использовании MinGW (QMake/CMake) : Один комментарий
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
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 от админа (это важно) и вводим:
должна появится инфа о компиляторе, если этого не произошло значит компиль установлен неправильно, ищем ошибку на предыдущих шагах. Если вывелась информация проверяем, что мы ничего не напутали: у нас запускается действительно 32 битная версия, и что она именно та которую мы установили на предыдущих шагах, а не из оригинального mingw без w64 (это по сути разные проекты) или, прости господи, вижуал студии.
Если все нормально переходим в папку с Qt:
запускаем там конфигур как-то так:
10) Распаковываем qt creator в » C:\QT\qt-creator-opensource-src-3.2.2″, так же проверяем чтобы внутри не было вложенной папки, а сразу были папка bin и остальное.
12) Открываем блокном файл «C:\QT\qt-creator-opensource-src-3.2.2\src\libs\utils\tcpportsgatherer.cpp», находим строчку
и меняем её на
13) Перезапускаем cmd опять же от админа. Собираем creator в новой папке:
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 от админа и проверяем что нам выдаст
если все в норме, делаем все то же самое что и в шаге 6, только путь у нас теперь будет другой.
На blogspot есть замечательная статья о том как подружить qt creator и github. Однако в ней не даны инструкции что делать если винт на котором все это настроено сгорел синим пламенем. Попробуем восполнить этот пробел.
17) Запускаем git-bash от админа, с ярлыка который нам создал установщик
делаем настройки, конечно же подставив ту почту на которую зарегистрирован аккаунт на гитхабе и свой никнейм
генерим новую пару ключей для ssh:
3 раза жмакаем enter, заходим браузером в свой профиль на гитхабе, удаляем старый ключ (если конечно не собираемся им пользоваться, а он утрачен как у меня) и добавляем новый.
пробуем склонировать существующий репозиторий:
mkdir C:\\myproject
cd C:\\myproject
git clone git@github.com:myGithubNick/mysuperproject.git
обратите внимание что пользователь «git», а не никнейм; никнейм указывается уже после двоеточия. Кроме того никаких https:// или git:// перед адресом быть не должно, если получаете сообщение, что нужно использовать https, значит гитхаб не опознал в вас владельца репозитория, ищите проблемы с ключами или ssh. Если все в порядке, гит сделает нам копию репозитория в папке mysuperproject. Зайдем в нее и проверим что репозиторий рабочий, и у нас есть все права
естественно ошибок быть не должно, если есть значит что-то не так с установкой гита или 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».
Переходим на вкладку Профили 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, и что от чего зависит, ошибится трудно) перекомпилится только тот кусок который нам нужен.