Qt for X11 Requirements | Qt 5.4

- Qt 5.4
- Qt for X11 Requirements
- Qt 5.4.2 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.

It's possible to configure Qt with -qt-xcb, which compiles in a set of xcb helper libraries instead of trying to link against the system versions. This can help make Qt less dependent on some of the xcb helper libraries that might not be available on all distributions. The table specifies which dependencies are provided by -qt-xcb.

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 or provided by -qt-xcb | 1.8.1
xcb-render-util | libxcb-render-util | Utility library for XCB for Render extension | auto-detected or provided by -qt-xcb | 0.3.8
xcb-shape | libxcb-shape | X C Bindings for Shape extension | auto-detected or provided by -qt-xcb | 1.8.1
xcb-randr | libxcb-randr | X C Bindings for Resize and Rotate Extension | auto-detected or provided by -qt-xcb | 1.8.1
xcb-xfixes | libxcb-xfixes | X C Bindings for Fixes Extension | auto-detected or provided by -qt-xcb | 1.8.1
xcb-sync | libxcb-sync | X C Bindings for Sync Extension | auto-detected or provided by -qt-xcb | 1.8.1
xcb-shm | libxcb-shm | X C Bindings for Shared Memory Extension | auto-detected or provided by -qt-xcb | 1.8.1
xcb-icccm | libxcb-icccm | X C Bindings for ICCCM Protocol | auto-detected or provided by -qt-xcb | 0.3.9
xcb-keysyms | libxcb-keysyms | Utility library for XCB for keycode conversion | auto-detected or provided by -qt-xcb | 0.3.9
xcb-image | libxcb-image | Utility library for XCB for XImage and XShmImage, used for QBackingStore and cursor support | auto-detected or provided by -qt-xcb | 0.3.9
Fontconfig | libfontconfig | Font customization and configuration | `-fontconfig` or auto-detected | 2.1
FreeType | libfreetype | Font engine |  | 2.1.3
Xi | libXi | X11 Input Extensions | `-xinput` or auto-detected | 1.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.8.1
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
- libxext-dev
- libxfixes-dev
- libxi-dev
- libxrender-dev
- libxcb1-dev
- libx11-xcb-dev
- libxcb-glx0-dev

Additionally, if you do not configure with -qt-xcb, you should also install these development packages:

- 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

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.

## OpenGL Dependencies

The configure script will autodetect if OpenGL headers and libraries are installed on your system, and if so, it will include the Qt OpenGL module in the Qt library.

If your OpenGL headers or libraries are placed in a non-standard directory, you may need to change the `QMAKE_INCDIR_OPENGL` and/or `QMAKE_LIBDIR_OPENGL` in the config file for your system.

The QGL documentation assumes that you are familiar with OpenGL programming. If you're new to the subject a good starting point is http://www.opengl.org/.

## 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.

To build Qt Multimedia, you need the GStreamer library, base plugins, and development files for your system. 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.

## Qt WebKit Dependencies

Qt WebKit depends on some extra development tools in addition to those required for the rest of Qt.

Note: These dependencies are only needed if you use a source version of Qt. They are not required when using a prebuilt library.

- gperf
- bison
- flex (v2.5.33 or later)
- sqlite (development version)
- fontconfig (development version)
- xrender (development version)
- gstreamer (development version)

These should be available in most major Linux distributions, but the exact install instructions will vary.

For the most up to date information about Qt WebKit dependencies, please refer to the Qt WebKit wiki for Linux