Как собрать qt из исходников

от admin

Qt for Windows — Building from Source

This page describes the process of configuring and building Qt for Windows. To download and install a pre-built Qt for Windows, follow the instructions on the Getting Started with Qt page.

Step 1: Getting the Sources

Qt sources can be installed in the Qt Online Installer. Source packages are also available as Git repositories, as archives in the Qt Account (commercial users), and on download.qt.io (open-source users).

If you install the sources through the Qt Online Installer, they will be available in the Qt installation directory, for instance C:\Qt\6.4.2\Src .

If you downloaded the source archive, extract it to a directory of your choice, for instance C:\dev\Qt\src .

Note: The path to the source directory must not contain any spaces or Windows specific file system characters. The path should also be kept short. This avoids issues with too long file paths in the compilation phase.

Step 2: Install Build Requirements

To build Qt from sources you need a build environment with a supported compiler and various build tools available:

Build Tools

Tool Supported Versions Description
CMake Version 3.16 and newer (3.17 and newer for -debug-and-release builds 3.21 and newer for -static builds). Required for configuring the Qt build. Available in the Qt Online Installer and on cmake.org.
Ninja Recommended tool for building Qt. Available in the Qt Online Installer and on ninja-build.org.
Perl Required build tool. Popular Windows installers are ActiveState Perl and Strawberry Perl. Perl is also installed as part of Git.
Python Version 3 Required build tool. Windows installers are available on python.org, or from the Microsoft Store.

The executables cmake.exe , ninja.exe , perl.exe , and python.exe must be available in your build environment. You achieve this by adding the respective directory to your PATH environment variable.

Compilers

The following compilers and configurations are supported in Qt 6.4:

Operating System Architecture Compiler
Windows 11 21H2 (1809 or later) x86_64 MSVC 2022, MSVC 2019, MinGW 11.2
Windows 10 21H2 (1809 or later) x86_64 MSVC 2022, MSVC 2019, MinGW 11.2
Windows on ARM arm64 MSVC 2019/2022 Technology Preview

Note: Windows on ARM is only supported as a deployment target. Applications have to be cross-compiled from an x86-64 Windows machine and deployed to target.

QDoc Dependencies

QDoc uses Clang to parse C++ code. If you wish to build QDoc manually, refer to Installing Clang for QDoc for specific build requirements.

Step 3: Set the Environment Variables

We recommend creating a desktop link that opens a command prompt with the environment set up similar to the Command Prompt menu entries provided by Visual Studio. This is done by creating an application link passing a .cmd file setting up the environment and the command line option /k (remain open) to cmd.exe .

Assuming the file is called qt6vars.cmd and the Qt folder is called C:\Qt\6.4.2\Src :

A desktop link can then be created by specifying the command %SystemRoot%\system32\cmd.exe /E:ON /V:ON /k C:\Qt\qt6vars.cmd as application.

Depending on your individual setup, you might also need to make the installation directories of CMake, Ninja, Perl, and Python part of the SET %PATH% line above.

Note: Setups for MinGW are similar; they differ only in that the bin folder of the installation should be added to the path instead of calling the Visual Studio setup script. For MinGW, please make sure that no sh.exe can be found in the path, as it affects mingw32-make .

Step 4: Build the Qt Library

To configure the Qt library for your machine type, run the configure.bat script in the source directory.

By default, Qt is configured for installation in the C:\Program Files\Qt directory, but this can be changed by using the -prefix option.

The Configure Options page contains more information about the configure options. See Qt for Windows — Graphics Acceleration for specific options regarding graphics acceleration.

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.

Сборка Qt 5 из Git

В этой статье мы попытаемся дать некоторые объяснения касательно получения модулей Qt 5 из git и способы последующей их сборки. Не стесняйтесь обновлять эту статью, некоторые вещи изменяются во время разработки. Обсуждение проблем и их решения можно найти в ветке форума http://developer.qt.nokia.com/forums/viewthread/7018 (на английском).

Требования к системе

Вам очевидно потребуется git (>= 1.6.x) для получения пакетов.

Чтобы правильно сконфигурировать и собрать Qt 5 из исходных текстов, вам будут необходимы Perl (>=5.14) и Python (>=2.6.x), а так-же рабочий компилятор.

Linux/X11

Основы сборки

Ubuntu/Debian:

sudo apt-get install build-essential perl python git

Libxcb [xcb.freedesktop.org]: теперь является бэкэндом оконной системы по умолчанию для платформ на основе X11/Xorg, и поэтому вы должны установить libxcb и его сопроводительные пакеты. Qt5 может быть собран с любой libxcb версией, доступной в дистрибутивных пакетах (но вы можете дополнительно использовать v1.8 или выше, чтобы распараллелить поддержку рендеринга). src/plugins/platforms/xcb/README [code.qt.io]: перечисляет требуемые пакеты.

Libxcb

Ubuntu/Debian:

sudo apt-get install «^libxcb.*» libx11-xcb-dev libglu1-mesa-dev libxrender-dev

Fedora 16 и выше:

su — -c «yum install libxcb libxcb-devel xcb-util xcb-util-devel»

Fedora 17+ (xcb-util-renderutil в настоящее время доступно в обновлениях тестового репозитария, но пока работает не устойчиво):

su — -c «yum —enablerepo=updates-testing install libxcb libxcb-devel xcb-util xcb-util-devel xcb-util--devel»

Команда установки perl-version для Fedora

su — -c «yum install perl-version»

sudo pacman -S —needed libxcb xcb-proto xcb-util xcb-util-image xcb-util-wm

На Linux Chakra, кроме пакетов, упомянутых для ArchLinux, вы должны дополнительно установить пакет xcb-util-keysyms. Этот пакет доступен из CCR.

Mandriva/ROSA/Unity:

urpmi ‘pkgconfig(xcb)’ ‘pkgconfig(xcb-icccm)’ ‘pkgconfig(xcb-image)’ ‘pkgconfig(xcb-renderutil)’

Поддержка OpenGL

Для QtQuick2 настоятельно рекомендуется графический драйвер с собственной поддержкой OpenGL 2.0.

QtJsonDb

QtJsonDb зависит от libedit:

Ubuntu/Debian:

sudo apt-get install libedit-dev

Mandriva/ROSA/Unity:

Qt WebKit

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

Ubuntu/Debian:

sudo apt-get install flex bison gperf libicu-dev libxslt-dev

su- -c «yum install gperf»

Mandriva/ROSA/Unity:

QtWayland зависимости

Для сборки модуля QtWayland, должны быть установлены библиотеки разработки Wayland [wayland.freedesktop.org]: (libxcomposite-dev и libwayland-dev).

Mac OS X

XCode и GIT должно быть достаточно.

Windows

Графические драйверы Windows

Для работы QML2 потребуются драйвера OpenGL (Nvidia, и т.д.), с поддержкой OpenGL 2.1 или выше для вашей видеокарты. По умолчанию, в Windows установлены драйвера с поддержкой OpenGL 1.1, которой будет недостаточно.

Альтернативой может служить, ANGLE-library [code.google.com], которая обеспечивает, Open GL ES 2.0, переводящая вызовы Open_GL в Direct X. Чтобы создать её, вы должны проделать следующее:

  1. установить Direct X SDK[msdn.microsoft.com]:
  2. получить и скомпилировать ANGLE (из SVN репозитория) как описано на этой странице[code.google.com]:
  3. Примечание: При сборке для 64х битных систем, деактивируйте опцию WarnAsError в каждом файле проекта (поскольку в противном случае предупреждения о целочисленных преобразованиях повредят сборку).
  4. При конфигурировании Qt передайте в параметры командной строки -opengl es2 -angle <path>
Поддерживаемые компиляторы на Windows
  • Windows SDK 7.1 с Visual Studio 2010 (предпочтительно). С 16.03.2012, при установке SDK потребуется установка пакетов в следующем порядке (см. readme.html предоставленный пакетом обновления):
  1. Установка Visual Studio 2010
  2. Установка Windows SDK 7.1
  3. Установка Visual Studio 2010 SP1
  4. Установка Visual C++ 2010 SP1 Обновление компилятора для Windows SDK 7.1
  • Windows SDK 7 с Visual Studio 2008
  • Windows Kit 8 with Visual Studio 2012[mingw.org] или TDM MinGW (64bit)[tdm-gcc.tdragon.net] с g++ версии 4.6 или выше (поддерживается не всеми модулями)
Среда сборки Windows

Мы рекомендуем создать файл командной строки, который предоставит среду сборки (см. Qt Creator README [code.qt.io]). В этой среде Python (например, Active Python 2.7 или старше) и Perl (например, Active State Perl 5.12 или старше) должны быть указаны в переменной среды PATH.
Скачать Perl: http://www.activestate.com/activeperl/downloads [activestate.com]
Скачать Python: http://www.python.org/download/releases/ [python.org]
Скачать Ruby:http://rubyinstaller.org/downloads/ [rubyinstaller.org]

Подсказка: Удостоверьтесь, что Perl описан в пути PATH перед git, так как последний имеет устаревшую версию (Perl 5. 8), и может прервать работу сценария.

Многопроцессорная сборка: При использовании nmake, может быть установлена переменная окружения CL (опция компилятора Visual Studio) set CL=/MP, давая компилятору команду использовать все ядра. Альтернативно, может использоваться инструмент jom [wiki.qt.io]. Однако, надо отметить, что у него есть проблемы с взаимозависимостями модуля, которые могут прервать сборку.

ICU на Windows

Qt 5 может использовать библиотеку ICU [site.icu-project.org] для UNICODE и поддержки глобализации. Это требуется для создания QtWebKit.

Во время компиляции include и lib папки установки ICU должны быть добавлены к INCLUDE и LIB переменным окружения после вызова сценария установки SDK Windows.

Во время выполнения ICU должны быть найдены DLL библиотеки. Это может быть достигнуто, с помощью копирования DLL в папку приложения или добавления папки bin установленного ICU в переменную окружения PATH.

Получение исходного кода

Сначала клонируйте верхний уровень git репозитария Qt 5:

или (если вы находитесь за межсетевым экраном можно использовать https протокол):

После прочтения README [code.qt.io] — файла, мы инициализируем репозиторий, используя сценарий init-repository, который клонирует различные подмодули Qt5. Соответствующие опции:

  • —module-subset=default,-qtwebengine: позволяет не загружать qtwebengine при передаче этой опции. Этот модуль довольно большой, компиляция занимает много времени и часто является источником ошибок. Таким образом, рекомендуется загружать и собирать его, только если намереваетесь использовать. В дальнейшем вы всегда можете повторно выполнить init-repository, чтобы добавить этот подмодуль.
  • —http: передайте эту опцию, если находитесь позади брандмауэра.

cd qt5 perl init-repository

Если вы планируете участвовать в развитии Qt, вы должны определить codereview-username свое имя пользователя, это необходимо для того чтобы отделить особенности вашей версии:

perl init-repository —codereview-username <Jira/Gerrit username>

Конфигурирование и сборка

Установите путь так, чтобы использовать инструменты Qt5, а не старые Qt4 и прочие, которые могут присутствовать в системе:

Для Linux/Mac OS X:

unset QTDIR export PATH=»$PWD/qtbase/bin:$PWD/qtrepotools/bin:$PATH»

Для Windows:

set QTDIR= set PATH=%CD%\qtbase\bin;%CD%\qtrepotools\bin;%PATH%

Теперь сконфигурируйте сборку (из директории верхнего уровня). Отключение тестов tests и примеров examples значительно ускорит компиляцию:

Для Linux/Mac OS X:

./configure -developer-build -opensource -nomake examples -nomake tests

Для Windows:

configure -developer-build -opensource -nomake examples -nomake tests

  • -developer-build — эта опция экспортирует больше символов, чем в традиционной сборке Qt, что позволяет большему количеству классов и функций быть протестированными модулем. Это также значение по умолчанию для сборки отладочной версии и установки двоичных файлов в текущем каталоге, и позволяет избежать потребности в ‘make install’.
  • -opensource — устанавливает лицензию LGPL 2.1.
  • -nomake examples и -nomake tests — исключение из сборки тестов и примеров. В дальнейшем вы всегда можете собрать их отдельно.

Подсказка 1: На Linux вы должны также передать параметр -no-gtkstyle. Это вызвано тем, что в ряде систем (по крайней мере, SUSE и Gentoo) pkg-config —cflags gtk+–2.0 фактически возвращает пути, которые включают в систему Qt4.x-include каталоги.

Подсказка 2: Можете добавить -confirm-license, чтобы принять лицензию и избавиться от вопроса о ее принятии.

Подсказка 3: На Windows вы не в состоянии осуществить сборку, если sh.exe находится в PATH (например, из-за установленного git или msys). Такая ошибка обозначается в сообщениях qt5-srcqtbasebinqmake.exe: command not found и подобных. В этом случае удостоверьтесь, что sh.exe не указан в переменной PATH. Вы должны будете вновь сконфигурировать сборку, в случае если вы его удалили.

Запускаем сборку, вызывая build perl сценарий:

Для Windows (MSVC):

Или просто соберите определенный модуль, например, declarative, и модули, от которых он зависит:

Подсказка 1: build сценарий используется для сборки всей конфигурации. Для сборки модулей из каталогов с исходниками, вы можете выполнять команду make. Это тоже работает. Подсказка 2: jom, низкоуровневая замена nmake на Windows, она пока не правильно работает для высокоуровневых сборок. Однако, вы можете использовать его для (пере-)создания отдельных подмодулей.

Сборка QtWebKit

Для сборки потребуются инструменты bison, flex и gperf.

cd qtwebkit export WEBKITOUTPUTDIR=»$PWD/WebKitBuild» perl Tools/Scripts/build-webkit —qt —qmake=»$PWD/../qtbase/bin/qmake» —install-libs=<install dir> —debug

На сайте WebKit.org [trac.webkit.org] вы найдете инструкции для создания WebKit на Windows. Кроме того потребуются библиотеки ICU [site.icu-project.org] и phtreads-win32 [sourceware.org]. После распаковки пакета (в папку c:), необходимо сделать следующее:

  • Добавить c:\phtreads\pthreads.2 в переменную окружения INCLUDE
  • Добавить c:\phtreads\Pre-built.2\lib\x64 или c:\phtreads\Pre-built.2\lib\x86 в переменную окружения LIB
  • Добавить c:\phtreads\Pre-built.2\dll\x64 или c:\phtreads\Pre-built.2\dllx86 в переменную окружения PATH

Инструменты bison, flex и gperf, которые требуются для сборки, предусмотрительно размещены в папке gnuwin32\bin.

set PATH=%PATH%;%CD%\gnuwin32\bin cd qtwebkit set WEBKITOUTPUTDIR=%CD%\WebKitBuild perl Tools\Scripts\build-webkit —qt —qmake=»%CD%\\..\\qtbase\\bin\\qmake.exe» —install-libs=<install dir>

Установка (Linux / Mac OS X)

Примечание: Установка будет необходима только если вы не использовали опции -developer-build или -prefix «%PWD%/qtbase». В противном случае вы можете просто пользоваться Qt из каталога сборки.

Для установки, выполните

Но если вы желаете провести установку в нестандартный каталог, для того чтобы протестировать Qt5, вам необходимо описать где будет находиться каталог bin вашей установки в переменной PATH. Также вы должны или удостовериться, что не имеете переменнной среды QTDIR, или опишите в этой переменной путь установки перед тем как будете выполнять make install. Например, при установке в /opt/qt5 (это предполагает, использование bash; для csh-подобных оболочек вы должны будете сначала выполнить setenv эквиваленты):

PATH=/opt/qt5:$PATH QTDIR=/opt/qt5 make install

Очистка

Для получения действительно чистого дерева используйте:

git submodule foreach —recursive ‘git clean -dfx’

с некоторых пор, confclean, больше не работает из верхнего уровня репозитария.

Получение обновлений

Чтобы обновить qt5.git репозитарий, а также подмодули до последних известных протестированных версий, выполните

git pull git submodule update —recursive

Если вы планируете делать ночные сборки, рассмотрите использование сценария qt5_tool, который находится в qtrepotools/bin. Этот сценарий предоставляет возможность обновления репозитария, очистки и сборки. Например,

qt5_tool -u -c -b может использоваться, чтобы очистить, обновить и собрать. А

qt5_tool -p -c- b используется для того чтобы получить все головные модули и их основные ответвления.

  • Подсказка 1:git submodule update делает «жесткий» сброс подмодулей, потенциально избавляя от любых нежелательных изменений которые вы сделали! Если это произошло с вами (и вы не работали с персональными ответвлениями), git reflog, ваш друг….
  • Подсказка 2: При создании сценариев для обновлений на Windows отметьте, что git clean часто сбоит, если какой либо процесс блокирует файл или папку.

Использование основных ответвлений в подмодулях

По умолчанию checkout не будет содержать последние основные ответвления каждого отдельного репозитария подмодуля, но содержит комбинацию версий, которые зависят друг от друга. Если требуется получить абсолютно последний материал, можете сделать например так:

cd qtdeclarative git fetch git checkout master origin/master

или используйте qt5_tool, чтобы обновить все репозитарии:

Однако, всегда есть шанс, что компиляция перестанет работать из-за несовместимых версий подмодулей! В таком случае, вы можете спросить у других людей, активно работающих над модулем, как разрешить эти несовместимости.

Известные проблемы

Linux

сбой конфигурации с «No QPA platform plugin enabled! » (Linux)

Вам необходимо установить libxcb, и его зависимые пакеты, см. ‘Системные требования’.

qmlscene сообщение об ошибке «Cannot create platform GL context, none of GLX, EGL, DRI2 is enabled» (Linux)

Попытайтесь установить libx11-xcb-dev пакет:

sudo apt-get install libx11-xcb-dev

впоследствии вы должны повторно выполнить configure qtbase/src/plugins/platforms/xcb с опцией force для перекомпиляции.

WebKit не собирается при недостающем ICU

В настоящее время не конфигурируется проверка времени для ICU, так установите его через диспетчер пакетов.

для Ubuntu/Debian:

sudo apt-get install libicu-dev

для Fedora:

Альтернативно можете собрать Qt без webkit, удалив или переименовав qtwebkit, qtwebkit-examples-and-demos каталоги. -no-webkit опция конфигуратора еще не работает: https://bugreports.qt.io/browse/QTBUG-20577

Windows

qdeclarative не компилируется из-за без вести пропавших v8.lib (Windows)

Компиляция v8 в qtbase требует Python. Удостоверьтесь что python.exe прописан в переменной окружения % PATH% перейдите в каталог qtjsbackend, выполните qmake && nmake.

Проблема с отладкой OpenGL (Windows)

Установите переменную окружения QT_QPA_VERBOSE=gl:1 и запустите приложение с установленным DebugView. Журнал покажет требуемый по сравнению с полученной версией OpenGL. Если в логах журнала обнаружится что у него только OpenGL 1.1, то QML2 не будет работать. Обратите внимание на то, что qmlscene не будет сообщать об ошибках не поддерживаемых версий OpenGL.

Как собрать qt из исходников

Ubuntu/Debian:

sudo apt-get install build-essential perl python git

Libxcb

Ubuntu/Debian:

sudo apt-get install «^libxcb.*» libx11-xcb-dev libglu1-mesa-dev libxrender-dev

su — -c «yum install libxcb libxcb-devel xcb-util xcb-util-devel»

su — -c «yum —enablerepo=updates-testing install libxcb libxcb-devel xcb-util xcb-util-devel xcb-util--devel»

su — -c «yum install perl-version»

sudo pacman -S —needed libxcb xcb-proto xcb-util xcb-util-image xcb-util-wm

Mandriva/ROSA/Unity:

urpmi ‘pkgconfig(xcb)’ ‘pkgconfig(xcb-icccm)’ ‘pkgconfig(xcb-image)’ ‘pkgconfig(xcb-renderutil)’

Поддержка OpenGL
QtJsonDb

Ubuntu/Debian:

sudo apt-get install libedit-dev

Mandriva/ROSA/Unity:

Qt WebKit

Ubuntu/Debian:

sudo apt-get install flex bison gperf libicu-dev libxslt-dev

su- -c «yum install gperf»

Mandriva/ROSA/Unity:

QtWayland зависимости
Mac OS X
Windows
Графические драйверы Windows
  1. установить Direct X SDK[msdn.microsoft.com]:
  2. получить и скомпилировать ANGLE (из SVN репозитория) как описано на этой странице[code.google.com]:
  3. Примечание: При сборке для 64х битных систем, деактивируйте опцию WarnAsError в каждом файле проекта (поскольку в противном случае предупреждения о целочисленных преобразованиях повредят сборку).
  4. При конфигурировании Qt передайте в параметры командной строки -opengl es2 -angle <path>
Поддерживаемые компиляторы на Windows
  • Windows SDK 7.1 с Visual Studio 2010 (предпочтительно). С 16.03.2012, при установке SDK потребуется установка пакетов в следующем порядке (см. readme.html предоставленный пакетом обновления):
  1. Установка Visual Studio 2010
  2. Установка Windows SDK 7.1
  3. Установка Visual Studio 2010 SP1
  4. Установка Visual C++ 2010 SP1 Обновление компилятора для Windows SDK 7.1
  • Windows SDK 7 с Visual Studio 2008
  • Windows Kit 8 with Visual Studio 2012[mingw.org] или TDM MinGW (64bit)[tdm-gcc.tdragon.net] с g++ версии 4.6 или выше (поддерживается не всеми модулями)
Среда сборки Windows
ICU на Windows
  • —module-subset=default,-qtwebengine: позволяет не загружать qtwebengine при передаче этой опции. Этот модуль довольно большой, компиляция занимает много времени и часто является источником ошибок. Таким образом, рекомендуется загружать и собирать его, только если намереваетесь использовать. В дальнейшем вы всегда можете повторно выполнить init-repository, чтобы добавить этот подмодуль.
  • —http: передайте эту опцию, если находитесь позади брандмауэра.

cd qt5 perl init-repository

perl init-repository —codereview-username <Jira/Gerrit username>

unset QTDIR export PATH=»$PWD/qtbase/bin:$PWD/qtrepotools/bin:$PATH»

set QTDIR= set PATH=%CD%\qtbase\bin;%CD%\qtrepotools\bin;%PATH%

./configure -developer-build -opensource -nomake examples -nomake tests

configure -developer-build -opensource -nomake examples -nomake tests

  • -developer-build — эта опция экспортирует больше символов, чем в традиционной сборке Qt, что позволяет большему количеству классов и функций быть протестированными модулем. Это также значение по умолчанию для сборки отладочной версии и установки двоичных файлов в текущем каталоге, и позволяет избежать потребности в ‘make install’.
  • -opensource — устанавливает лицензию LGPL 2.1.
  • -nomake examples и -nomake tests — исключение из сборки тестов и примеров. В дальнейшем вы всегда можете собрать их отдельно.
Сборка QtWebKit

cd qtwebkit export WEBKITOUTPUTDIR=»$PWD/WebKitBuild» perl Tools/Scripts/build-webkit —qt —qmake=»$PWD/../qtbase/bin/qmake» —install-libs=<install dir> —debug

  • Добавить c:\phtreads\pthreads.2 в переменную окружения INCLUDE
  • Добавить c:\phtreads\Pre-built.2\lib\x64 или c:\phtreads\Pre-built.2\lib\x86 в переменную окружения LIB
  • Добавить c:\phtreads\Pre-built.2\dll\x64 или c:\phtreads\Pre-built.2\dllx86 в переменную окружения PATH

set PATH=%PATH%;%CD%\gnuwin32\bin cd qtwebkit set WEBKITOUTPUTDIR=%CD%\WebKitBuild perl Tools\Scripts\build-webkit —qt —qmake=»%CD%\\..\\qtbase\\bin\\qmake.exe» —install-libs=<install dir>

Установка (Linux / Mac OS X)

PATH=/opt/qt5:$PATH QTDIR=/opt/qt5 make install

git submodule foreach —recursive ‘git clean -dfx’

git pull git submodule update —recursive

  • Подсказка 1:git submodule update делает «жесткий» сброс подмодулей, потенциально избавляя от любых нежелательных изменений которые вы сделали! Если это произошло с вами (и вы не работали с персональными ответвлениями), git reflog, ваш друг….
  • Подсказка 2: При создании сценариев для обновлений на Windows отметьте, что git clean часто сбоит, если какой либо процесс блокирует файл или папку.

cd qtdeclarative git fetch git checkout master origin/master

Linux
сбой конфигурации с «No QPA platform plugin enabled! » (Linux)
qmlscene сообщение об ошибке «Cannot create platform GL context, none of GLX, EGL, DRI2 is enabled» (Linux)

sudo apt-get install libx11-xcb-dev

WebKit не собирается при недостающем ICU
для Ubuntu/Debian:

sudo apt-get install libicu-dev

для Fedora:
Windows
qdeclarative не компилируется из-за без вести пропавших v8.lib (Windows)
Проблема с отладкой OpenGL (Windows)

Компилируем 64-битную версию Qt под windows

Запускаем
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\Visual Studio 2008 x64 Win64 Command Prompt.lnk

cd c:\qt\2010.01.x64\qt
configure.exe
o
y
nmake

nmake clean
set PATH=%PATH%;c:\qt\2010.01.x64\qt\bin
cd c:\qt\2010.01.x64
qmake «CONFIG+=release» -r
nmake release

Qt for Windows — Building from Source

This page describes the process of configuring and building Qt for Windows. Before building, there are some requirements that are given in more detail in the Qt for Windows — Requirements document.

You can download the Qt 5 sources from the Downloads page. For more information, visit the Getting Started with Qt page.

Step 1: Install the License File (Commercially Licensed Qt Only)

If you use Qt with a commercial license, the Qt tools look for a local license file. If you are using a binary installer or the commercial Qt Creator, your licenses are automatically fetched and stored in your local user profile ( %USERPROFILE%\AppData\Roaming\Qt\qtlicenses.ini file).

If you do not use any binary installer or Qt Creator, you can download the respective license file from your Qt Account Web portal and save it to your user profile as %USERPROFILE%\.qt-license . If you prefer a different location or file name, you need to set the QT_LICENSE_FILE environment variable to the respective file path.

Step 2: Unpack the Archive

Uncompress the files into the directory you want Qt installed; e.g. C:\Qt\%VERSION% .

Note: The install path must not contain any spaces or Windows specific file system characters.

Step 3: Set the Environment Variables

We recommend creating a desktop link that opens a command prompt with the environment set up similar to the Command Prompt menu entries provided by Visual Studio. This is done by creating an application link passing a .cmd file setting up the environment and the command line option /k (remain open) to cmd.exe .

Assuming the file is called qt5vars.cmd and the Qt folder is called Qt-5 and located under C:\Qt :

A desktop link can then be created by specifying the command %SystemRoot%\system32\cmd.exe /E:ON /V:ON /k C:\Qt\qt5vars.cmd as application and C:\Qt\Qt-5 as working directory.

Note: Setups for MinGW are similar; they differ only in that the bin folder of the installation should be added to the path instead of calling the Visual Studio setup script. For MinGW, please make sure that no sh.exe can be found in the path, as it affects mingw32-make .

Settings required by the additional libraries (see Qt for Windows — Requirements) should also go this file below the call to the Windows SDK setup script.

Step 4: Build the Qt Library

The default behavior of configure is to create an in-source build of Qt 5. If you want to install Qt 5 to a separate location, you need to specify the command line option -prefix <location> . Alternatively, the command line option -developer-build creates an in-source build for developer usage.

To configure the Qt library for a debug build for your machine, type the following command in the command prompt:

The Configure Options page contains more information about the configure options.

To build Qt using jom, type:

If you do not have jom installed, type:

If an installation prefix was given, type jom install , nmake install or mingw32-make install .

Note: If you later need to reconfigure and rebuild Qt from the same location, ensure that all traces of the previous configuration are removed by entering the build directory and typing nmake distclean before running configure again.

Parallel Builds

jom is a replacement for nmake which makes use of all CPU cores and thus speeds up building.

Step 5: Build the Qt Documentation

For the Qt reference documentation to be available in Qt Assistant, you must build it separately:

This will build the documentation in the build folder. If you have installed Qt in a separate location, you will also need to install the documentation:

© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.

«Кодовый» беспредел

Еще один блог 😉 программиста-любителя о PHP, кросс-платформенной среде разработки Qt, интернете и прочем, что будет заслуживать внимание.

пятница, 3 августа 2012 г.

Сборка Qt из исходников компилятором MinGW

MinGW. Выбор пакетов для установки

1. Первое, что необходимо сделать это, конечно же, скачать и установить компилятор MinGW. Для этого стоит посетить официальный сайт и скачать online установщик. Запустив его, в принципе, никаких сложностей с установкой быть не должно. На что необходимо только обратить внимание «новичков в этом деле»: 1) установщик предлагает пользователю (да-да, Вам :-)) выбрать каким репозиторием пользоваться — актуальным на момент создания инсталлятора («use pre-packaged repository catalogues«), или самым последним («download latest repository catalogues«) — тут выбирайте сами (я выбираю всегда самую последнюю версию); 2) в момент выбора пакетов для установки — не забудьте отметить пакет C++, а так же дополнительные пакеты MSYS Basic System и MinGW Developer ToolKit (никогда не знаешь, что может понадобиться в следующий момент ;-)).

Если же сомневаетесь в правильности своих действий, Вы всегда можете посетить очень информативную страничку из ВиКи MinGW посвященную вопросу установки — ТУТ.

После установки MinGW, не забудьте добавить в переменную среды PATH полный путь до папки «bin» (так, если MinGW установлен в папку C:\MinGW, то в переменную PATH необходимо добавить путь C:\MinGW\bin). Только будьте предельно осторожны — не заменить содержимое, а именно добавить! Если затрудняетесь с поиском этой самой переменной PATH ;-), обратитесь к шагу 3 — это подтолкнет Вас в нужном направлении.

Окно «Переменные среды»

3. Задать переменные среды QMAKESPEC и QTDIR. Сделать это можно двумя способами:
=== 1) (рекомендую) в соответствующем окне «Переменные среды»
(кто не знает где его искать:
Пользователи Windows XP — ПКМ на иконке «Мой компьютер» меню «Свойства», в появившемся окне выбираем вкладку «Дополнительно» и ищем там кнопку «Переменные среды. «;
Пользователи Windows 7 — ПКМ на иконке «Мой компьютер» меню «Свойства», в появившемся окне выбираем слева меню «Дополнительные параметры системы» и далее, аналогично, вкладка «Дополнительно» и кнопка «Переменные среды. «).
=== 2) непосредственно перед выполнением команд описанных на шаге 4, задать в командной строке путем ввода команд:
Учтите, что данный способ задаст переменные среды на время существования консоли и при повторной сборке/реконфигурации библиотеки Qt, Вам придется вводить их заново.

Осталось только определится какие же значения необходимо задать для указанных переменных. Для QTDIR это полный путь нахождения корневой директории Qt (в моем случае, это «C:\Qt\ qt-everywhere-opensource-src-4.8.2 «). А вот QMAKESPEC должен содержать имя профиля сборки. Для выбранного компилятора MinGW, в арсенале Qt существуют два профиля: «win32-g++» — для версий компилятора GCC ниже 4.6, и » win32-g++-4.6 » — для версий компилятора GCC 4.6 (задействован в последних версиях MinGW). Как видно из наименования профиля, оно складывается из двух частей — имени платформы и имени компилятора (ну это уже так . справочно :-), а особо интересующиеся могут ознакомиться с полным перечнем возможных профилей в директории mkspecs).

4. Сконфигурировать библиотеку Qt.
Для этого необходимо в командной строке перейти в корневую директорию Qt (в моем случае «C:\Qt\ qt-everywhere-opensource-src-4.8.2 «) и вызвать программу «configure.exe» с интересующими опциями, исчерпывающий перечень которых, с кратким описанием, Вы можете получить вызвав «configure.exe» c опцией «-?». Но если Вы не понимаете с чем связались :-), то смело можете запускать конфигуратор безо всяких опций — он сконфигурирует библиотеку «по-умолчанию» (как это видется «создателям»).
Процесс компиляции библиотеки долгий, поэтому некоторые программисты, дабы сократить время сборки, в момент конфигурации указывают опции отменяющие компиляцию программ демонстрации и различных примеров. Если Вы чувствуете, что это «добро» и Вам не понадобиться, смело «кормите» конфигуратору: -nomake demos -nomake examples.
В качестве демонстрации, как это выглядит в живую, приведу свой перечень опций конфигурирования библиотеки Qt:
Конечно же, все это необходимо набирать в одну строчку . так . на всякий случай ;-).

Обратите внимание на опцию -opensource, что, как не трудно догадаться, означает согласие использовать Open Source редакцию Qt, которая лицензируется под лицензиями GPL v.3, либо LGPL v. 2.1. Если Вами не будет указана соответствующая опция, то конфигуратор первым же вопросом захочет узнать Ваш выбор редакции — open source либо коммерческой (ну это не про нас :-)). Не забудьте следом подтвердить и свое согласие с указанными «свободными» лицензиями ;-).

После того, как Вы ответите на все вопросы, конфигуратор создаст ключевой файл qmake.exe и makefile’ы модулей библиотеки Qt. Окончание этого процесса ознаменуется сообщением:
и Вам только останется перейти к шагу 5.

5. Собрать библиотеку Qt.
Самый дли-и-и-и-и-и-ительный по времени выполнения пункт этой «инструкции» — компиляция библиотеки Qt. Все что нужно сделать на этом шаге — это набрать в командной строке:
откинуться на кровать или пойти погулять, ибо времени на весь процесс уйдет несколько часов. Так на моем 2-х ядерном Атлоне с 4 Гб ОЗУ потребовалось порядка 7 часов.
В некоторых других «мануалах», Вы можете увидеть рекомендацию компилировать только цель sub-src:
что оправдано в случаях, когда Вы будете использовать «чисто библиотеку» (яркий тому пример — связка с MS Visual Studio). Но если же Ваша работа, к слову, будет протекать в том же Qt Creator’е, то Вам понадобятся дополнительные утилиты, которые при сборке цели «sub-src» не компилируются. Да и выгода по времени — буквально несколько минут. Поэтому, можно особенно не загоняться и компилировать все.
В качестве рекомендаций к данному шагу хотел бы посоветовать Вам отключить антивирусы и прочие средства защиты, иначе они могу стать неожиданным источником проблем компиляции.

На этом все. Радуемся, что все получилось (надеюсь) и приступаем к созданию своих «эпических» программ ;-)))).

Читать:
Как остановить загрузку файла на компьютере

Похожие статьи