Сборка библиотеки 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.
На этом установка завершена.
|