Сегодня мы рассмотрим: Настоящие ценители музыки знают, что для качественного...
В данной статье я описываю свой опыт компиляции библиотеки Qt версии 4.8.5 из исходников с помощью компилятора MinGW, идущего в составе среды программирования CodeBlocks версии 10.05 на машине с операционной системой Windows XP.
Так как для движка нужен нормальный редактор карт и объектов, то я задумался о выборе GUI библиотеки. Вполне логично, что ввиду повсеместного расхваливания qt, я не мог не попробовать ее в деле. Скачал книжки, инсталлировал версию "qt-win-opensource-4.8.4-mingw". У меня CodeBlocks версии 10.05. Создал в CodeBlock класс главного окна и модуль с main - короче, простейшее приложение с главным окном. Надо сказать, что меня ждало разочарование - компиляция и сборка qt-приложений представляет собой не банальное нажатие пункта "Build", а ряд предварительных настроек и действий, да и вообще производится в командной строке. После пары дней геморроя я скомпилировал этот небольшой проект с главным окном. Но для этого мне пришлось собрать qt из исходников. Дело в том, что ошибки никак не хотели устраняться и я где-то прочитал, что якобы версия mingw на компьютере разработчика может конфликтовать с установленным qt из-за того, что установленный qt был собран на другой версии mingw. Что ж, решил собрать.
Скачал исходники "qt-everywhere-opensource-src-4.8.5.zip". Хотя сейчас уже есть пятая версия, я решил взять предпоследнюю на тот момент. На диске "E" (это тот, что обычно D у большинства) создал папку "Qt". Положил архив туда. Распаковал его.
Делал я все на Windows XP. Так как компилятор MinGW идет в составе среды программирования CodeBlocks, я использовал его, то есть я не устанавливал его отдельно.
Установил переменные среды:
Мой компьютер-> Свойства:
Дополнительно:
Переменные среды:
Сначала добавляете путь к папке bin компилятора MinGW (у меня E:\Program Files\CodeBlocks\MinGW\bin)
Нужно выделить переменную "Path", нажать кнопку "Изменить":
Внимание!
Нужно не заменять то, что там уже есть, а именно добавить
, иначе что-то на вашем компе может перестать нормально работать. Появится окошко.
Пойти в конец строки поля ввода с именем "Значение переменной". Если там не стоит в конце ";" (без кавычек), то поставьте точку с запятой и вставьте путь к папке "bin" у MinGW.
У меня вот так (я показал многоточием то, что у меня уже есть путь к другим папкам)...;E:\Program Files\CodeBlocks\MinGW\bin;
То есть пути в "Path" разделяются точками с запятой. Жмете ок.
Создаете следующие переменные:
Имя переменной: MinGWDIR Значение переменной: путь к папке MinGW (у меня E:\Program Files\CodeBlocks\MinGW)
Имя переменной: QMAKESPEC Значение переменной: win32-g++
Имя переменной: QTDIR Значение переменной: путь к распакованным исходникам qt (у меня E:\Qt\qt-everywhere-opensource-src-4.8.5)
QMAKESPEC должен содержать имя профиля сборки. Для выбранного компилятора MinGW, у Qt есть два профиля: "win32-g++" - для версий компилятора GCC ниже 4.6, и "win32-g++-4.6" - для версий компилятора GCC 4.6 (он задействован в последних версиях MinGW).
Конфигурация библиотеки Qt. Запускаем командную строку и переходим в ней в папку с исходниками Qt (у меня E:\Qt\qt-everywhere-opensource-src-4.8.5). Нужно запустить конфигуратор с опциями. Я использую LGPL - версию, поэтому выбрал опцию -opensource. Так же мне не нужны демо и примеры -nomake demos -nomake examples. Мне нужны версии debug и release. Вообщем, я набил (лучше вручную, а то при вставке может запуститья не со всеми опциями, а только с теми, которые поместились в первой строке) следующее:
configure.exe -debug-and-release -qt-libpng -qt-libjpeg -opensource
-no-qt3support -qt-zlib -qt-libmng -qt-libtiff
-nomake demos -nomake examples
Конфигуратор спросит вас, дав 4 варианта. Нужно согласиться использовать LGPL (я к сожалению не помню их названия, но там понятно).
После этого конфигуратор создаст ключевой файл qmake.exe и makefile"ы модулей библиотеки Qt. После завершения этого процесса появится сообщение:
Qt is now configured for building. Just run mingw32-make.
To reconfigure, run mingw32-make confclean and configure.
Осталось запустить компиляцию. Для этого вбейте в командной строке следующее:
Компиляция qt идет очень долго. У меня этот процесс занял 10 часов. Я начал в 11.00. В комп в последний раз заглядывал в 18.20 - процесс еще шел. Утром мне пришлось перезагрузить комп, так как комп не реагировал на нажатия кнопок мыши и клавиш клавиатуры. Через поиск я нашел, что самый последний созданный файл библиотеки был создан в 21.02.
После я решил проверить собранную библиотеку Qt. Прописал в переменных среды путь к папке "bin" у Qt (у меня E:\Qt\qt-everywhere-opensource-src-4.8.5\bin). Это нужно для запуска qmake.
Итак, я проверяю созданный в CodeBlocks пример приложения Qt с главным окном.
В командной строке я перешел в папку проекта с главным окном. Набил
Qt создала файл проекта с расширением.pro. Далее набил просто без параметров. Qt создал makefile" ы проекта. Осталось скомпилировать проект - для этого я набил в командной строке
Все. В папке Debug я увидел долгожданный экзешник, над названием которого ввиду трепки нервов с Qt я не стал долго думать:
Показать
Для меня в Windows 7 это было разрешено, щелкнув значок стрелки рядом с значком компьютера в левом нижнем углу экрана Qt Creator над зелеными стрелками, а затем дважды щелкнул компилятор в списке и перестроил проект.
2018-12-04T00:00Z
Когда я установил Qt в папку ~/Qt/ а затем вручную переименовал папку в нечто другое, у меня возникла аналогичная проблема. Когда я восстановил имя папки в исходном файле ~/Qt/ (указанном в установщике Qt), проблема исчезла; все было решено.
2018-12-11T00:00Z
У меня была аналогичная проблема при разработке на моем Mac -
Я пытался создать настольную разработку с создателем QT 3.3.0 на основе QT 5.4.0 (Clang 6.0 (Apple)) на OSX 10.9. Попробовав вручную изменить мои наборы для использования GCC, G ++ и CLANG. Я наконец нашел это очень простое решение:
Удалите файл xxx.pro.user и перезапустите QT Creator. Затем он автоматически подбирает ваши компиляторы / среды.
2018-12-18T00:00Z
* только для пользователей Windows *
Прежде чем перейти к следующим шагам, убедитесь, что у вас установлена последняя версия Qt.
- Загрузите и установите minGW-64-bit из ссылки:
- Запомнить Каталог, в который вы устанавливаете minGW.
- Откройте создатель Qt и перейдите к инструментам -> параметры -> Сборка и запуск
На вкладке «Компиляторы» выберите add -> MinGW ->
Имя: MinGW
path: Просмотр mingw-w64.bat
(вы найдете этот файл в каталоге, в котором вы установили MinGW).
ABI: x86 Windows msvc2015 pe 64bit
Не забудьте применить свои изменения.
Перейти в Kit -> добавить
Имя: GCC
Тип устройства: рабочий стол
Устройство: локальный ПК (по умолчанию для рабочего стола)
Компилятор: minGW
Версия Qt: выберите новейшую версию
Применить изменения и перезапустить qt
При создании нового проекта убедитесь, что вы используете GCC как комплект
Если он все еще не работает, щелкните значок компьютера внизу слева над кнопкой воспроизведения -> GCC -> Сборка
ИЛИ
Перейти к проектам (это в меню слева) -> Шаги сборки -> сделать -> Переопределить файл minGw31-make.exe -> перейти к пути, в котором вы установили minGW / bin \ mingw32-make.exe
Сделайте то же самое для чистых шагов тоже
Если u все равно получите любую ошибку после этих шагов, попробуйте установить переменные окружения
- Нажмите Win + Q
- Введите «Переменные среды»
- нажмите «Редактировать переменные системной среды»
- Свойства системы -> Advance -> Переменные среды
- Нажмите на путь (ПРИМЕЧАНИЕ. Используйте эти шаги очень осторожно и не возитесь с другими опциями )
- Нажмите править
- нажмите стрелку вправо, чтобы перейти к концу текста.
- введите полуточку (если она не находится в конце ее, потому что все системные пути отличаются точкой с запятой)
- paste path "MinGW_installation_directory \ bin" (В моем случае это было «G: \ Qt \ Tools \ mingw32 \ bin»). Убедитесь, что вы скопируете и вставьте путь CORRECT
- Нажмите «ОК» и примените изменения.
Это должно сделать это!!!
Настройка 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 .
Для быстрой разработки кроссплатформенных приложений весьма просто ставится в 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 Creator, доступный по вышеприведенной ссылке на сайт Нокии.
Так же грузим онлайн-инсталлятор MinGW отсюда: . Установим его, например, в C:\MinGW (далее этот путь будет обозначен как
Компиляция
Так как нам нужна статическая линковка, в файле 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 МБ и в примерах совершенно не нужны. Почистив от них каталоги
Как оказалось, скачав лишь , создать свою программу на Qt не удастся. Помимо этого файла, в первую очередь, нужен рабочий компилятор (для данной версии это MinGW не ниже 4.4), который придется устанавливать отдельно, и скачать уже готовый. Среда разработки () оказалась поставляется вне библиотек Qt 4.8.5 и тоже требует отдельной установки. Ну и напоследок, если собираетесь запускать свою программу в отладчике по шагам (а я уверен, что рано или поздно придется это делать), то необходим еще и свой отладчик (GDB имеющийся в MinGW не подходит)
А теперь обо всем по порядку.
Последовательность действий:
1. Установка компилятора C++ MinGW .Можно воспользоваться способом установки через . Но для новичка он труден. Я предлагаю поступить проще - скачать уже готовый настроенный и проверенный пакет всего необходимого для компиляции проектов Qt на C++.
1.1. Скачиваем: mingw_4.4.0.zip .
1.2. Создаем папку Qt в корне системного раздела (диск C:) и переносим в нее папку MinGW
2. Установка библиотек Qt 4.8.5
2.1. Скачиваем их: .
2.2. Запускаем скачанный exe-файл.
2.3. В процессе установки указываем:
путь куда установить: C:\Qt\4.8.5
путь до MinGW: C:\Qt\MinGW
остальное по умолчанию
3. Установка среды разработки Qt Creator 3
3.1. Скачиваем её: .
3.2. Запускаем скачанный exe-файл.
3.3. В процессе установки указываем:
путь куда установить: C:\Qt\Creator3
остальное по умолчанию
4. Установка отладчика GDB 7.7 для Qt
Почему-то Qt не нравится тот gdb, который имеется в пакете MinGW. Qt хочет свой отладчик, по своему настроенный. И его вы можете собрать используя эту статью. Я собирал именно по этой статье (разве что пришлось заменить файл из исходников - \src\dist\gdb\Makefile.mingw, на последний Makefile.mingw с сайта https://qt.gitorious.org/qt). Но я предлагаю использовать уже собранный мной GDB.
4.1. Скачиваем его: Qt_GDB7.7.zip (13 MB).
4.2. Переносим в С:\Qt
папку Qt_GDB7.7
и всё ее содержимое из скачанного архива.
5. Настройка Qt
4.1. Запускаем Qt Creator
4.2. Открываем окно Параметров
во вкладке Инструменты
.
4.3. Выбираем в правом меню строку Сборка и запуск
.
4.4. Начнем с конца. Переходим на вкладку Отладчики
.
4.5. Нажимаем кнопку Добавить
, даем название GDB
и указываем путь:
C:\Qt\Qt_GDB7.7\gdb-i686-pc-mingw32.exe
4.6. Применить
4.7. Вкладка Компиляторы -> кнопка Добавить -> MinGW .
4.8. Указываем путь к компилятору:
C:\Qt\MinGW\bin\gcc.exe
4.9. Остальное не трогаем. Применить .
4.10. Вкладка Профили Qt -> кнопка Добавить .
4.11. Указываем путь до qmake:
C:\Qt\4.8.5\bin\qmake.exe
4.12. Изменим название на Qt 4.8.5
4.13. Остальное не трогаем. Применить .
4.14. Вкладка Комплекты . Удаляем комплект Desktop (по умолчанию) , если имеется.
4.15. Нажимаем кнопку Добавить . Присваиваем имя: Qt 4.8.5 (MinGW) .
4.16. В строках Компилятор , Отладчик и Профиль Qt указываем только что созданные параметры.
4.17. Остальное не трогаем. Применить .
4.18. ОК
Всё, теперь можно начать создавать программы использую библиотеку Qt и среду разработки Qt Creator .
Для начала можете запустить этот тестовый проект "Hello, World" (взят из книги М.Шлее)
Кстати, Qt не поддерживает русских символов в пути до проектов. А все проекты советую хранить в созданной специально для этого папке C:\Qt\Projects
. Для запуска этого проекта просто распакуйте его (папку Hello
и два имеющихся в ней файла) и запустите проектный файл Hello.pro
с помощью Qt Creator
. Среда разработки предложит настроить его. С её предложением мы согласимся, оставим как есть, и нажмем кнопку Настроить проект
.