- Qt 5.15
- Qt for X11 Requirements
- Qt 5.15.12 Reference Documentation

# Qt for X11 Requirements

## Platform Plugin Dependencies

On Linux, the xcb QPA (Qt Platform Abstraction) platform plugin is used. It provides the basic functionality needed by Qt GUI and Qt Widgets to run against X11. Its library dependencies are described the following table. To build Qt from its source code, you will also need to install the development packages for these libraries for your system.

Note: From Qt 5.15 onwards, Qt does require libxcb 1.11. Also, the `-qt-xcb` configure option got removed that was bundling some of the libs below. Anyhow, you can now configure with `-bundled-xcb-xinput` to avoid a dependency to system xcb-xinput.

Name | Library | Notes | Configuration options | Minimum working version
--- | --- | --- | --- | ---
XRender | libXrender | X Rendering Extension; used for anti-aliasing and alpha cursor support | `-xrender` or auto-detected | 0.9.0
xcb-render | libxcb-render | X C Bindings for Render extension | auto-detected | 1.9
xcb-render-util | libxcb-render-util | Utility library for XCB for Render extension | auto-detected | 0.3.8
xcb-shape | libxcb-shape | X C Bindings for Shape extension | auto-detected | 1.9
xcb-randr | libxcb-randr | X C Bindings for Resize and Rotate Extension | auto-detected | 1.9
xcb-xfixes | libxcb-xfixes | X C Bindings for Fixes Extension | auto-detected | 1.9
xcb-sync | libxcb-sync | X C Bindings for Sync Extension | auto-detected | 1.9
xcb-shm | libxcb-shm | X C Bindings for Shared Memory Extension | auto-detected | 1.9
xcb-icccm | libxcb-icccm | X C Bindings for ICCCM Protocol | auto-detected | 0.3.9
xcb-keysyms | libxcb-keysyms | Utility library for XCB for keycode conversion | auto-detected | 0.3.9
xcb-image | libxcb-image | Utility library for XCB for XImage and XShmImage, used for QBackingStore and cursor support | auto-detected | 0.3.9
xkbcommon | libxkbcommon | Keymap handling | `-xkbcommon` or auto-detected | 0.5.0
xkbcommon-x11 | libxkbcommon-x11 | Keymap handling | auto-detected | 0.5.0
Fontconfig | libfontconfig | Font customization and configuration | `-fontconfig` or auto-detected | 2.6
FreeType | libfreetype | Font engine |  | 2.3.0
Xext | libXext | X Extensions |  | 6.4.3
X11 | libX11 | X11 client-side library |  | 6.2.1
xcb | libxcb | X C Binding library |  | 1.9
X11-xcb | libX11-xcb | Xlib/XCB interface library |  | 1.3.2
SM | libSM | X Session Management | `-sm` or auto-detected | 6.0.4
ICE | libICE | Inter-Client Exchange | `-sm` or auto-detected | 6.3.5
glib | libglib-2.0 | Common event loop handling | `-glib` or auto-detected | 2.8.3
pthread | libpthread | Multithreading |  | 2.3.5

Development packages for these libraries contain header files that are used when building Qt from its source code. On Debian-based GNU/Linux systems, for example, we recommend that you install the following development packages:

- libfontconfig1-dev
- libfreetype6-dev
- libx11-dev
- libx11-xcb-dev
- libxext-dev
- libxfixes-dev
- libxi-dev
- libxrender-dev
- libxcb1-dev
- libxcb-glx0-dev
- libxcb-keysyms1-dev
- libxcb-image0-dev
- libxcb-shm0-dev
- libxcb-icccm4-dev
- libxcb-sync0-dev
- libxcb-xfixes0-dev
- libxcb-shape0-dev
- libxcb-randr0-dev
- libxcb-render-util0-dev
- libxcd-xinerama-dev
- libxkbcommon-dev
- libxkbcommon-x11-dev

Some of these packages depend on others in this list, so installing one may cause others to be automatically installed. Other distributions may provide system packages with similar names.

## Accessibility Dependencies

The Qt accessibility implementation uses the Assistive Technology Service Provider Interface (AT-SPI). Besides DBUS, the development package `libatspi2.0-dev` must be installed.

## OpenGL Dependencies

Configure attempts to automatically detect OpenGL ES 2.0, or later, or regular desktop OpenGL. You can disable OpenGL support by using the `-no-opengl` option.

Note: The Qt OpenGL module (which contains classes that start with QGL) has been deprecated in favor of the Qt GUI module (which contains classes that start with QOpenGL).

## Multimedia Dependencies

As described in the Multimedia overview, Qt Multimedia uses the GStreamer multimedia framework as the backend for audio and video playback on Linux. The minimum required version of GStreamer is 0.10.24. The 1.x series is also supported.

To build Qt Multimedia, you need the GStreamer library, base plugins, and development files for your system. To run applications that use Qt Multimedia, you might also need to install the following GStreamer plugins: 'good', 'ugly', 'bad', ffmpeg (0.10), and libav (1.x). These additional plugins contain various codecs for audio and video decoding, as well as the necessary components for using the camera APIs. The package names for GStreamer vary between Linux distributions; try searching for `gstreamer` or `libgstreamer` in your distribution's package repository to find suitable packages.

## Speech Dependencies

Qt Speech depends on Speech Dispatcher (libspeechd) on the Linux platform. The following development packages should be installed:

- flite1-dev
- libspeechd-dev
- speech-dispatcher

## Qt WebEngine Dependencies

Qt WebEngine has additional build requirements which are listed in the Qt WebEngine Platform Notes.

## QDoc Dependencies

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