В поддержку Qt

статьи в помощь разработчику

   

Главная

Статьи:

Установка MinGW

Установка Qt

Сборка Qt 5

Установка Qt Creator

Проблемы Qt 4.8.3

Распараллеливание компиляции

Распараллеливание для Qt 5.0.1

Сборка отладчика GDB

Установка библиотеки Qwt

Установка QwtPolar

Установка QwtPplot3D

Конфигурация сборки по умолчанию

Сборка Qt Creator из исходников

Пример использования QwtPlot

Масштабирование QwtPlot в стиле TChart

Синхронное масштабирование

Пример использования QwtPolar

Пример использования QwtPlot3D

Редактирование QSplitter

Сборка в Ubuntu для Windows

Установка пакетов без интернета

Установка драйвера NVIDIA

 

Главная > Сборка Qt 5 (очень старая редакция)

 

Сборка библиотеки Qt 5

Старая редакция статьи, рассматривает сборку Qt 5 с MinGW 4.6. Новую можно найти здесь.

В декабре 2012 года состоялся релиз Qt 5.0.0. Вместе с тем, ветка библиотеки Qt 4 разработчиком также поддерживается, порядок ее установки для MinGW можно найти здесь. В данной статье рассматривается вариант сборки библиотеки Qt 5 с MinGW.

Ubuntu

Порядок действий (не проверялся)

1. Скачиваем странице загрузки установочный файл

qt-linux-opensource-5.0.0-x86-offline.run   411 MB
(версия файла на момент написания статьи)

помещаем его, например, в домашнюю папку.

2. Запускаем терминал, вводим команды

cd путь к установочному файлу
sudo sh qt-linux-opensource-5.0.0-x86-offline.run

Вводим пароль для получения прав ROOT и далее следуем инструкциям.

Windows

В готовом виде библиотека Qt 5.0.0 доступна только для использования с MSVS 2010. Хочется надеяться, что это связано с некоторыми проблемами ее сборки с MinGW, о которых говорится, например, здесь, и в обозримом будущем эти проблемы будут решены. А пока хотелось бы посмотреть, что изменилось, и привыкать к написанию кода с учетом изменений, которые безусловно присутствуют в Qt 5.

В настоящей статье предлагается вариант сборки Qt 5 с MinGW из исходников без WebKit и с "непродвинутой" версий OpenGL (опция desktop, а не es2 с angle). Тем не менее, она позволяет собрать Qt Creator, библиотеки Qwt, QwtPolar, QwtPlot3D и является достаточной для широкого круга приложений на C++. Опционально в сборку включен OpenSSL, а почему бы и нет.

Для сборки потребуются

MinGW с ядром MSYS
ActivePython
ActivePerl
OpenSSL
DirectX Software Development Kit

последнему нужен

Windows SDK for Windows 7 and .NET Framework 4

а этому, в свою очередь,

Microsoft .NET Framework 4

Рассмотрим пошагово порядок действий.

1. Убеждаемся, что компилятор MinGW уже установлен, например, в папку C:\Qt\mingw. Если это еще не было сделано, устанавливаем компилятор в соответствии с инструкциями, изложенными с статье Установка MinGW.

2. Создаем папку

C:\Qt\qt-5-deps

в которую будем устанавливать все компоненты, необходимые для сборки Qt 5.

3. Скачиваем ActivePython с ресурса, установочный файл

ActivePython-2.7.2.5-win32-x86.msi   45 MB
(версия файла на момент написания статьи)

устанавливаем в папку

C:\Qt\qt-5-deps\Python27

Проверяем наличие в системной переменной Path путей

C:\Qt\qt-5-deps\Python27
C:\Qt\qt-5-deps\Python27\Scripts

Эти пути прописываются в процессе установки, но первый из них – с обратным слэшем в конце. Слэш необходимо убрать.

4. Скачиваем ActivePerl с ресурса, установочный файл

ActivePerl-5.16.1.1601-MSWin32-x86-296175.msi   25 MB
(версия файла на момент написания статьи)

устанавливаем в папку

C:\Qt\qt-5-deps\Perl

Проверяем наличие в системной переменной Path путей

C:\Qt\qt-5-deps\Perl\site\bin
C:\Qt\qt-5-deps\Perl\bin

5. Скачиваем Microsoft .NET Framework 4 по ссылке, онлайн установщик

dotNetFx40_Full_setup.exe

устанавливаем в папку по умолчанию

C:\Program Files\Microsoft.NET

6. Скачиваем Windows SDK for Windows 7 and .NET Framework 4 по ссылке, онлайн установщик

winsdk_web.exe

устанавливаем в папку по умолчанию

C:\Program Files\Microsoft SDKs

В процессе установки может выскочить ошибка

Installation of the "Microsoft Windows SDK for Windows 7" product has reported the following error: Please refer to Samples\Setup\HTML\ConfigDetails.htm document for further information.

Для устранения можно воспользоваться советом с ресурса – удалить ранее установленный Microsoft Visual C++ 2010 Redistributable, должно помочь.

Установке продукта Microsoft мешает другой продукт Microsoft! Очень символично.

7. Скачиваем DirectX Software Development Kit по ссылке, установочный файл

DXSDK_Jun10.exe   571 MB

устанавливаем в папку

C:\Qt\qt-5-deps\DXSDK

На предложение разрешить сбор информации о компьютере выбираем

No, I would not like to participate

По окончании установки проверяем среди системных наличие переменной DXSDK_DIR, в которой прописано

C:\Qt\qt-5-deps\DXSDK\

Обратный слэш в конце здесь как раз нужен.

8. Скачиваем OpenSSL с ресурса, архив

openssl-1.0.1c.tar.gz   4,25 MB
(версия файла на момент написания статьи)

помещаем его в папку

C:\Qt\qt-5-deps

Запускаем MinGW Shell (см. группу ярлыков MinGW в меню Пуск или файл C:\Qt\mingw\msys\1.0\msys.bat) и поочередно вводим команды

unset MAKE_COMMAND MAKEFLAGS
export PATH="/c/Qt/mingw/bin:$PATH"
cd /c/Qt/qt-5-deps
tar -zxvf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./Configure --prefix=/c/Qt/qt-5-deps/openssl-1.0.1c/dist no-idea no-mdc2 no-rc5 shared mingw
make depend && make && make install

По окончании сборки и установки прописываем в системную переменную Path путь

C:\Qt\qt-5-deps\openssl-1.0.1c\dist\bin

9. Скачиваем исходники библиотеки Qt 5 на странице загрузки, архив

qt-everywhere-opensource-src-5.0.0.zip   269 MB
(версия файла на момент написания статьи)

распаковываем его в папку

C:\Qt

Итак, исходные файлы библиотеки теперь лежат в папке

C:\Qt\qt-everywhere-opensource-src-5.0.0

в ней же и будет происходить сборка. Для удобства переименуем эту папку во что-нибудь более короткое, например

C:\Qt\qt-5.0.0

10. Будет полезным сразу же обеспечить распараллеливание компиляции. Для этого открываем для редактирования файл

C:\Qt\qt-5.0.0\qtbase\qmake\generators\makefile.cpp

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

QString makefilein = " -f " + subtarget->makefile;

которая встречается в этом файле 2 раза. Новая редакция строки выглядит, например, так

QString makefilein = " -j9 -f " + subtarget->makefile;

Число потоков компиляции в ключе -jX в Вашем случае Вы определяете, опираясь на рекомендации из соответствующей статьи.

11. Для удобства создадим пакетный файл C:\Qt\qt-5.0.0\config.bat со следующим содержимым

set INCLUDE=C:\Qt\qt-5-deps\openssl-1.0.1c\dist\include

set LIB=C:\Qt\qt-5-deps\openssl-1.0.1c\dist\lib

set QMAKESPEC=
set QTDIR=

set PATH=C:\Qt\qt-5.0.0\qtbase\bin
set PATH=%PATH%;C:\Qt\qt-5.0.0\gnuwin32\bin
set PATH=%PATH%;C:\Qt\mingw\bin
set PATH=%PATH%;C:\Qt\qt-5-deps\Perl\bin
set PATH=%PATH%;C:\Qt\qt-5-deps\Python27
set PATH=%PATH%;C:\Qt\qt-5-deps\openssl-1.0.1c\dist\bin
set PATH=%PATH%;%SystemRoot%\System32

set DXSDK_DIR=C:\Qt\qt-5-deps\DXSDK\

set MAKE_COMMAND=

configure -prefix C:\Qt\qt-5.0.0\qtbase -opensource -confirm-license -platform win32-g++ -developer-build -release -shared -debug-and-release -c++11 -opengl desktop -openssl -plugin-sql-odbc -nomake tests -nomake examples -no-vcproj

12. Запускаем терминал Windows (см. Пуск > Все программы > Стандартные > Командная строка) и вводим команды

cd \Qt\qt-5.0.0
config.bat

Создание qmake и конфигурация сборки библиотеки займет несколько минут. Будет выдано предупреждение о том, что WebKit не будет собираться по причине отсутствия опции -icu. Теперь вводим команду

mingw32-make

и "курим бамбук" минут 30 или больше (в зависимости от производительности компьютера).

13. После сборки папка с библиотекой занимает почти 6 GB. Ситуацию можно улучшить, отыскав и удалив все папки .obj, это позволит высвободить больше 2 GB. Проделать данную операцию можно, например, с помощью Total Commander. Еще малую толику места можно освободить, удалив

паки: .moc, .rcc, debug, release
и файлы: Makefile, *.Debug, *.Release

14. Для использования библиотеки прописываем в системную переменную QTDIR следующее значение

C:\Qt\qt-5.0.0\qtbase

а в переменную Path – путь

%QTDIR%\bin

15. Для корректной руссификации приложений создаем папку

C:\Qt\qt-5.0.0\qtbase\translations

и копируем в нее все файлы *.qm из папки

C:\Qt\qt-5.0.0\qttranslations\translations

16. В завершение соорудим себе привычное окружение. Создаем пакетный файл C:\Qt\qt-5.0.0\qtbase\bin\qtvars.bat со следующим содержимым

@echo off
rem
rem Этот файл был создан по аналогии с одноименным из библиотеки Qt 4
rem

echo Setting up a MinGW/Qt only environment...
echo -- QTDIR set to C:\Qt\qt-5.0.0\qtbase
echo -- PATH set to C:\Qt\qt-5.0.0\qtbase\bin
echo -- Adding C:\Qt\mingw\bin to PATH
echo -- Adding C:\Qt\qt-5-deps\Perl\bin to PATH
echo -- Adding C:\Qt\qt-5-deps\Python27 to PATH
echo -- Adding C:\Qt\qt-5-deps\openssl-1.0.1c\dist\bin to PATH
echo -- Adding %SystemRoot%\System32 to PATH
echo -- QMAKESPEC set to win32-g++

set QTDIR=C:\Qt\qt-5.0.0\qtbase
set PATH=C:\Qt\qt-5.0.0\qtbase\bin
set PATH=%PATH%;C:\Qt\mingw\bin
set PATH=%PATH%;C:\Qt\qt-5-deps\Perl\bin
set PATH=%PATH%;C:\Qt\qt-5-deps\Python27
set PATH=%PATH%;C:\Qt\qt-5-deps\openssl-1.0.1c\dist\bin
set PATH=%PATH%;%SystemRoot%\System32
set QMAKESPEC=win32-g++

Создаем группу ярлыков Qt by Digia v5.0.0 (MinGW OpenSource) (папку)

Windows XP:   C:\Documents and Settings\All Users\Главное меню\Программы\Qt by Digia v5.0.0 (MinGW OpenSource)
Windows 7:   C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Qt by Digia v5.0.0 (MinGW OpenSource)

помещаем в нее ярлыки

Assistant
    Объект:   C:\Qt\qt-5.0.0\qtbase\bin\assistant.exe
    Рабочая папка:   C:\Qt\qt-5.0.0\qtbase

Designer
    Объект:   C:\Qt\qt-5.0.0\qtbase\bin\designer.exe
    Рабочая папка:   C:\Qt\qt-5.0.0\qtbase

Linguist
    Объект:   C:\Qt\qt-5.0.0\qtbase\bin\designer.exe
    Рабочая папка:   C:\Qt\qt-5.0.0\qtbase

Qt 5.0.0 Command Prompt
    Объект:   %COMSPEC% /k "C:\Qt\qt-5.0.0\qtbase\bin\qtvars.bat"
    Рабочая папка:   C:\Qt\qt-5.0.0\qtbase

Сюда же можно будет поместить и ярлык Qt Creator.

На этом установка завершена.