21 апреля 2014 г.

Установка и настройка библиотеки Qt 4.8.5 и QtCreator 3 на Windows с компилятором MinGW

    Как оказалось, скачав лишь Qt libraries 4.8.5 for Windows (minGW 4.4, 317 MB), создать свою программу на Qt не удастся. Помимо этого файла, в первую очередь, нужен рабочий компилятор (для данной версии это MinGW не ниже 4.4), который придется устанавливать отдельно, и скачать уже готовый. Среда разработки (Qt Creator 3.1.0 for Windows (68 MB)) оказалась поставляется вне библиотек 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. Скачиваем их: Qt libraries 4.8.5 for Windows (minGW 4.4, 317 MB).
2.2. Запускаем скачанный exe-файл.
2.3. В процессе установки указываем:
путь куда установить: C:\Qt\4.8.5
путь до MinGW: C:\Qt\MinGW
остальное по умолчанию

3. Установка среды разработки Qt Creator 3
3.1. Скачиваем её: Qt Creator 3.1.0 for Windows (68 MB).
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. Среда разработки предложит настроить его. С её предложением мы согласимся, оставим как есть, и нажмем кнопку Настроить проект:

    Можно открыть редактор кода и в нем отредактировать один имеющийся там файл main.cpp. Или сразу скомпилировать проект нажав на зеленый треугольник в левом нижнем углу окна или нажав комбинацию <Ctrl>+<R>.

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

Используемый и полезный материал:
Download Qt _ Qt Project
Qt С чего начать
Курс 'Компьютерная Графика'
В поддержку Qt - Установка Qt 4
В поддержку Qt - Установка MinGW
В поддержку Qt - Сборка отладчика GDB

При копировании статьи просьба указывать источник и автора.
С уважением, GRomR1.

56 комментариев:

  1. Какое же ОГРОМНОЕ человеческое тебе спасибо, друг! Все получилось!

    ОтветитьУдалить
  2. большинство ссылок битые

    ОтветитьУдалить
  3. Большое человеческое спасибо !!!

    ОтветитьУдалить
  4. спасибо. наконец-то отладчик заработал.

    ОтветитьУдалить
  5. спасибо большое за статью!

    ОтветитьУдалить
  6. Огромное спасибо, столько было перелопачено при попытке запустить отладчик ! А все решилось просто благодаря Вашей помощи

    ОтветитьУдалить
  7. Ты выручил в трудную минуту! Здравия тебе!

    ОтветитьУдалить
  8. Спасибо!!!!!! Выручил!!!!!

    ОтветитьУдалить
  9. Спасибо огроменное! Наконец-то он заработал!

    ОтветитьУдалить
  10. все сделал как написано ,но в любом демо проекте вылетает ошибка
    I"..\..\..\include\QtGui" -I"..\..\..\include" -I"..\..\..\include\ActiveQt" -I"debug" -I"..\basicgraphicslayouts" -I"." -I"..\..\..\mkspecs\win32-g++" -o debug\window.o ..\basicgraphicslayouts\window.cpp
    C:\Qt\4.8.3\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\..\..\include\QtCore" -I"..\..\..\include\QtGui" -I"..\..\..\include" -I"..\..\..\include\ActiveQt" -I"debug" -I"..\basicgraphicslayouts" -I"." -I"..\..\..\mkspecs\win32-g++" -D__GNUC__ -DWIN32 ..\basicgraphicslayouts\window.h -o debug\moc_window.cpp
    g++ -c -g -Wall -Wextra -fno-exceptions -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\..\..\include\QtCore" -I"..\..\..\include\QtGui" -I"..\..\..\include" -I"..\..\..\include\ActiveQt" -I"debug" -I"..\basicgraphicslayouts" -I"." -I"..\..\..\mkspecs\win32-g++" -o debug\moc_window.o debug\moc_window.cpp
    bin\rcc.exe -name basicgraphicslayouts ..\basicgraphicslayouts\basicgraphicslayouts.qrc -o debug\qrc_basicgraphicslayouts.cpp
    process_begin: CreateProcess(NULL, bin\rcc.exe -name basicgraphicslayouts ..\basicgraphicslayouts\basicgraphicslayouts.qrc -o debug\qrc_basicgraphicslayouts.cpp, ...) failed.
    make (e=2): Не удается найти указанный файл.

    mingw32-make[1]: *** [debug/qrc_basicgraphicslayouts.cpp] Error 2
    mingw32-make[1]: Leaving directory `C:/Qt/4.8.3/examples/graphicsview/build-basicgraphicslayouts-Qt_4_8_MinGW-Debug'
    mingw32-make: *** [debug] Error 2
    14:06:05: Процесс «C:\Qt\MinGW\bin\mingw32-make.exe» завершился с кодом 2.
    Ошибка при сборке/установке проекта basicgraphicslayouts (комплект: Qt 4.8 (MinGW))
    Во время выполнения этапа «Сборка»
    14:06:05: Прошло времени: 00:07.
    как можно исправить?

    ОтветитьУдалить
    Ответы
    1. К сожалению, понятия не имею из-за чего возникает данная ошибка.
      Хотя сам на нее натыкался. Но не помню как решил.
      Разве что могу посоветовать попробовать на другом MinGW:
      http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.8.2/threads-posix/dwarf/i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z/download
      Еще как-то мне пришлось поставить ActivePerl тоже из-за каких-то ошибок со сборкой, и потом повторно Qt

      Удалить
  11. Большое спасибо!
    А не подскажете ли, как в консольном приложении получить нормальный вывод русских символов, а не всякой "кракозябры"?

    ОтветитьУдалить
  12. Большое спасибо!
    А не подскажете ли, как в консольном приложении сделать нормальный вывод русских букв, а не всякой "кракозябры"?

    ОтветитьУдалить
    Ответы
    1. у класса QString есть разные методы для перевода строки из одной кодировки в другую, думаю, могут помочь в этом деле.
      еще в самой командной строке тоже можно задать некую кодировку по умолчанию.
      хотя это так, только предположения, сам же не сталкивался с этим.

      Удалить
  13. Спасибо большое! Несколько дней безуспешно пытался переварить кашу из интернета с разных форумов, у Вас всё по полочкам так разложено, что с первого раза всё заработало!

    ОтветитьУдалить
  14. Судя по тому, что Google выдал ссылку на эту страницу первой, проблема настройка Build and Run Kit чрезвычайно актуальна. Вы многих спасли. От себя и всех, которые забыли оставить комментарий, выражаю вам огромную благодарность. Добра и кода без багов :)

    ОтветитьУдалить
    Ответы
    1. Эх, а я всего лишь подробно описал те грабли на которые сам наткнулся, и метод их обхода.
      Рад, что вам оказался полезен мой опыт.
      Спасибо за отзыв.

      Удалить
    2. Спасибо!!!
      Все пока ОК!!!

      Удалить
  15. Добрый! Почему ехе файлы не работают вне Creator. Пишет отсутствует файл mingwm10.dll. Хотя в соответствующей папке mingw он есть. Заранее благодарен за ответ.

    ОтветитьУдалить
    Ответы
    1. Для того чтобы приложения собранные с помощью Qt работали вне среды Qt Creator надо либо прописать в системную переменную PATH все путь до необходимых библиотек, либо особенным образом собрать/установить среду разработки, т.н. статическая сборка Qt (когда все необходимые библиотеки "запихиваются" в скомпилированный exe-файл.
      Такое вот ограничение.
      В принципе я его поборол. Могу сказать как, если опишете с какой версией Qt работаете.

      Удалить
  16. Здравствуйте, у меня возникла проблема. Сделал все как в инструкции но при запуске программы Hello вообще ничего не происходит. Я зашел в вкладку консоль сборки и увидел вот это:

    18:33:46: Выполняются этапы для проекта Hello...
    18:33:46: Запускается: «C:\Qt\4.8.5\bin\qmake.exe» C:\Users\Кролик\Desktop\c++\Qt\Hello.pro -r -spec win32-g++
    Cannot find file: c:\Users\Кролик\Desktop\c++\Qt\Hello.pro.
    18:33:46: Процесс «C:\Qt\4.8.5\bin\qmake.exe» завершился с кодом 2.
    Ошибка при сборке/установке проекта Hello (комплект: Qt 4.8.5 (MinGW))
    Во время выполнения этапа «qmake»
    18:33:46: Прошло времени: 00:00.

    Начиная с " Cannot find file: " все гори красным, что мне делать ?

    ОтветитьУдалить
    Ответы
    1. РУССКИХ БУКВ В ПУТИ К ПРОЕКТУ НЕ ДОЛЖНО БЫТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      Удалить
  17. Спасибо!!! Респект!!!!

    ОтветитьУдалить
  18. все сделал как тут написана, за это спасибо все понятно и ясно, разобрался что для чего нужно, раньше не понимал. Но у меня возникла проблема: когда я добавляю профиль Qt, то выходит ошибка: "Отсутствует компилятор для создания кода для этого профиля Qt. Укажите хотя бы один." И соответственно дальше все ломается. Путь указан правильно. Не подскажите в чем может быть проблема?

    ОтветитьУдалить
  19. вот ошибки при попытке отладки:
    Cannot read C:/iwmake/build_mingw_opensource/mkspecs/default/qmake.conf: No such file or directory
    Could not read qmake configuration file C:/iwmake/build_mingw_opensource/mkspecs/default/qmake.conf.
    Cannot read C:/iwmake/build_mingw_opensource/mkspecs/default/qmake.conf: No such file or directory
    Could not read qmake configuration file C:/iwmake/build_mingw_opensource/mkspecs/default/qmake.conf.
    Could not read qmake configuration file C:/iwmake/build_mingw_opensource/mkspecs/default/qmake.conf.
    Could not find qmake configuration file default.
    Ошибка разбора файла D:/Qt-programs/proba/proba.pro. Отмена.
    Could not find qmake configuration file default.
    Ошибка разбора файла D:/Qt-programs/all_sorting/all_sorting.pro. Отмена.

    ОтветитьУдалить
    Ответы
    1. что странные пути?
      пробовали ли оригинальный MinGW с GND?

      Удалить
  20. Спасибо за собранный GDB - выручили!

    ОтветитьУдалить
  21. напишите, пожалуйста, как сделать статическую сборку. Все устанавливал по вашему примеру. Опишите пожалуйста пошагово

    ОтветитьУдалить
    Ответы
    1. Обязательно для qt4?

      Удалить
    2. Ок. Есть одна заготовка для qt5, думаю можно ее для qt4 адаптировать.

      Удалить
    3. Прошу:
      http://gromr1.blogspot.ru/2015/07/static-build-qt-4-8-7-mingw-on-windows.html

      Удалить
  22. Спасибо! Не знаю, как тебе удалось собрать свой gdb (у меня даже после замены makefile генерировал ошибку), но твой gdb реально работает!

    ОтветитьУдалить
  23. У меня при подключении бибилиотек (после выполнения п.4.11) qt впадает в ступор и зависает.Как с этим бороться?(все остальное установилось без проблем)

    ОтветитьУдалить
    Ответы
    1. У меня та же проблема. После указания пути к qmake.exe, qt ctreator виснет.

      Удалить
  24. Бился 3 дня над установкой нужной версии Qt - чуть мозг не сломал!
    Спасибо ОГРОМНОЕ!!!
    Всё заработало!!!
    УРА!!!

    Автору респект!

    ОтветитьУдалить
  25. После указания пути к qmake.exe, qt ctreator виснет. Хелп плиз!!

    ОтветитьУдалить
  26. Этот комментарий был удален автором.

    ОтветитьУдалить
  27. Выдает вот такую ошибку что делать??

    Cannot find file: c:\Users\Вячеслав\Desktop\Новая папка\111\untitled1\untitled1.pro.
    22:38:33: Процесс «C:\Qt\4.8.5\bin\qmake.exe» завершился с кодом 2.
    Ошибка при сборке/установке проекта untitled1 (комплект: Qt 4.5.8(MinGW))
    Во время выполнения этапа «qmake»

    ОтветитьУдалить
    Ответы
    1. Ну написано же в теме:
      "... Qt не поддерживает русских символов в пути до проектов."
      и в комментариях тоже.
      Когда же народ начнет читать...

      Удалить
  28. Спасибо , только ваш сайт правильно и доходчиво объяснил что и как нужно делать )))

    ОтветитьУдалить
  29. Огромное спасибо! Я бы в жизни не разобралась без этой статьи;)

    ОтветитьУдалить
  30. Огромный респект автору!!!
    Спасибо, помог быстро разобраться и с'экономить время.
    Автору: Здоровья, счастья и творческих успехов.

    ОтветитьУдалить
  31. Добрый день!
    Насчет русских букв....
    Под Linux если в путях к проекту есть русские буквы проблемы возникают только при пошаговом выполнении/отладке. В этом случае запускается отладка в disassembler-mode. Сборка же проекта нормально отрабатывает.
    Проблема, скорей всего не в qtcreator, а в gbd.
    Сейчас разбираюсь с этим.

    ОтветитьУдалить
  32. спасибо огромное,очень помогло!

    ОтветитьУдалить
  33. Оромное спасибо за статью.
    Пользуюсь постоянно из закладок, пока не перешёл на qt 5

    ОтветитьУдалить
  34. Выполняется сборка проекта MyProj...
    Невозможно запустить процесс c:/qt/2010.01/qt/bin/qmake.exe
    Ошибка во время сборки проекта MyProj
    Во время выполнения сборки на этапе 'QMake'

    В основных настройках указал каталог проектов, снял галочку "Фоновая сборка" и сбросил каталог сборки по умолчанию. После этих действий проект запустился.

    ОтветитьУдалить
  35. Помогите пожалуйста, после того как добавляю qmake.exe в профили qt выходит: профиль qt не установлен пожалуйста выполните make install

    ОтветитьУдалить
  36. Помогите скачать mingw_4.4.0.zip. Не скачиваетсч

    ОтветитьУдалить