Компиляция Qt4 в Windows

Позаимствовано у Ю.В.Земскова. Лично не проверялось

Предварительные условия

  1. для работы со свободной версией Qt4 должен быть установлен компилятор MinGW (к сожалению, поддержка компилятора Microsoft C++ включена только в коммерческие версии Qt);
  2. путь к исполняемым файлам MinGW, находящимся в папке bin, должен быть указан в системной переменной PATH (напоминаем, что после редактирования значений переменных окружения требуется перезагрузить компьютер, чтобы все изменения вступили в силу).

Порядок установки

  1. Если ставится коммерческая версия Qt, то имеющийся файл лицензии скопируйте в каталог Documents and Settings\ИмяПользователя и дайте ему имя .qt-license.
  2. Распакуйте содержимое архива qt-win-opensource-src-4.x.x.zip или qt-win-commercial-src-4.2.2 в любой каталог, например, c:\qt422 (полное имя каталога не должно содержать пробелов).
  3. Добавьте путь к каталогу c:\qt422\bin в системную переменную PATH. Перезагрузите компьютер.
  4. Перейдите в каталог c:\qt422 и запустите программу configure.exe. Если используется Visual Studio .NET, то конфигурирование и компиляцию следует проводить в окне Visual Studio .NET Command Prompt. При запуске configure могут быть указаны параметры:
    • -platform x – платформа установки. Вместо x можно указать win32-g++, а для коммерческих версий Qt: win32-iccwin32-msvcwin32-msvc.net и win32-msvc2005;
    • -release – собирать только конфигурацию Release (без информации для отладки на уровне исходного текста);
    • -debug – собирать только конфигурацию Debug (с информацией для отладчика);
    • -debug-and-release – собирать обе конфигурации;
    • -shared – собирать динамические библиотеки;
    • -static – собирать статические библиотеки;
    • -exceptions – использовать исключения;
    • -no-exceptions – не использовать исключения;
    • -no-qt3support – не компилировать модули поддержки старой версии Qt3;
    • -fast – генерировать только те make-файлы, которые необходимы для компиляции библиотеки;

и многие другие. Полный список всех опций можно узнать, запустив configure с параметром -help.

В результате работы configure будут сгенерированы make-файлы для сборки библиотеки Qt, инструментов разработки и демонстрационных примеров. Не выходя из каталога установки, запустите процесс компиляции с помощью команды mingw32-make (или make, если используется Visual C++) и приготовьтесь к длительному ожиданию (несколько часов); Если ставилась коммерческая версия Qt, то установите интегратор с Microsoft Visual Studio, для этого запустите на выполнение файл qt-vsintegration-1.2.1.exe. После компиляции библиотеки Qt4 в каталоге bin появятся следующие исполняемые файлы:

  1. qmake – утилита для создания файла проекта *.pro и make-файлов;
  2. assistant – программа просмотра документации;
  3. designer – визуальный редактор графического интерфейса пользователя;
  4. moc – метакомпилятор, предназначенный для перевода исходных текстов программ, написанных с использованием библиотеки Qt, на обычный язык C++;
  5. uic – компилятор ui-файлов, создаваемых программой designer;
  6. rcc – компилятор qrc-ресурсов;
  7. qtdemo – оболочка для запуска демонстрационных программ;
  8. linguist – инструмент, облегчающий перевод интерфейса приложений на другие языки;
  9. qt3to4 – утилита для конвертации старых программ, разработанных с использованием 3-й версии библиотеки;
  10. lupdatelrelease – утилиты для для интернационализации приложений.

Простейшее QT4 приложение

Исходный код

Создадим каталок проекта hello_world. В нем — подкаталог для исходных кодов src и файл src/hello.cpp и разместим там следующий код

#include <QApplication>
#include <QMainWindow>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QMainWindow *mw = new QMainWindow(0, Qt::Window);

    mw->setWindowTitle("Hello WORLD");
    mw->resize(400, 300);
    mw->show();

    return app.exec();
}

Подготовка проекта

Создадим файл проекта

Debian, Ubuntu

Зайдем в каталог проекта и выполним в консоли

qmake-qt4 -project -recursive -o hello.pro

Утилита qmake-qt4 создаст файл проекта hello.pro

Mandriva

Зайдем в каталог проекта и выполним

/usr/lib/qt4/bin/qmake -project -recursive -o hello.pro

Утилита qmake создаст файл проекта hello.pro

Windows

 

Создание Makefile(конфиг сборки проекта)

Debian, Ubintu

qmake-qt4 -makefile -recursive

Mandriva

/usr/lib/qt4/bin/qmake -makefile -recursive

Windows

 

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

Debian, Ubintu, Mandriva

make

Должен быть примерно такой вывод в консоль (без сообщений об ошибках, в идеале и без warning ;-))

$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/lib/qt4/include/QtCore -I/usr/lib/qt4/include/QtCore -I/usr/lib/qt4/include/QtGui -I/usr/lib/qt4/include/QtGui -I/usr/lib/qt4/include -I. -I. -I. -o hello.o src/hello.cpp
src/hello.cpp:15:4: warning: no newline at end of file
g++ -Wl,-rpath,/usr/lib/qt4/lib -o hello hello.o    -L/usr/lib/qt4/lib -lQtGui -L/usr/lib -L/usr/lib/qt4/lib -L/usr/X11R6/lib -lpng -lSM -lICE -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -lrt -ldl -lpthread

Тут мы четко наблюдаем процесс компиляции и линковки.

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

Windows

 

Запуск приложения

Debian, Ubintu, Mandriva

Просто запустить получившийся исполняемый файл

./hello

Windows

 

Результат работы

Если предыдущие пункты были успешны, результатом будет являться примерно такое окошко:


Установка QT 4 на ОС Linux(Debian, Ubuntu, Mandriva)

Для разработки приложений на QT4 нам понадобятся не только бинарные библиотеки, но и заголовочные файлы. Традиционно подобные файлы содержатся в пакетах с окончанием -devel

Установка из исходных кодов

Я её не рекомендую, дабы не быть потом мишенью для реплик неприятного содержания. В общем случае установка любого ПО из исходных кодов более нетривиальна, чем использование штатного репозитария любимого дистрибутива.

FIXME

Debian, Ubuntu

Посмотрим, что для разработки на QT4 содержится в репозитарии.

# apt-cache search ^qt4\-
qt4-demos - Qt 4 examples and demos
qt4-designer - graphical designer for Qt 4 applications
qt4-dev-tools - Qt 4 development tools
qt4-doc - Qt 4 API documentation
qt4-doc-html - Qt 4 API documentation (HTML format)
qt4-qmake - Qt 4 qmake Makefile generator tool
qt4-qtconfig - Qt 4 configuration tool

Какие из этих пакетов надо ставить?

Ставьте все. Не жадничайте.

Даже все вместе эти библиотеки займут на вашем жестком диске места в разы(может даже на порядки) меньше, чем средний художественный фильм в паршивом качестве ;-).

# apt-get install qt4-demos qt4-designer qt4-dev-tools qt4-doc qt4-doc-html qt4-qmake qt4-qtconfig

Mandriva

Состав пакетов тут тот же самый, что и в Debian. Только менеджер пакетов другой. Кстати, никто не мешает для установки использовать drakrpmsynaptic или другой графический менеджер пакетов.

Но будьте внимательны. Когда я пытался компилировать проект на Mandriva 2008, столкнулся с интересной его особенностью: путь к qmake во время создания проекта надо указывать полностью, в противном случае он предпримет попытку собрать его используя QT3. В Debian и AltLinux во избежание путаницы qmake называется qmake-qt4