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.

NameLibraryNotesConfiguration optionsMinimum working version
XRenderlibXrenderX Rendering Extension; used for anti-aliasing and alpha cursor support-xrender or auto-detected0.9.0
xcb-renderlibxcb-renderX C Bindings for Render extensionauto-detected1.11
xcb-render-utillibxcb-render-utilUtility library for XCB for Render extensionauto-detected0.3.9
xcb-shapelibxcb-shapeX C Bindings for Shape extensionauto-detected1.11
xcb-randrlibxcb-randrX C Bindings for Resize and Rotate Extensionauto-detected1.11
xcb-xfixeslibxcb-xfixesX C Bindings for Fixes Extensionauto-detected1.11
xcb-xkblibxcb-xkbX C Bindings for XKeyboard Extensionauto-detected1.11
xcb-synclibxcb-syncX C Bindings for Sync Extensionauto-detected1.11
xcb-shmlibxcb-shmX C Bindings for Shared Memory Extensionauto-detected1.11
xcb-icccmlibxcb-icccmX C Bindings for ICCCM Protocolauto-detected0.3.9
xcb-keysymslibxcb-keysymsUtility library for XCB for keycode conversionauto-detected0.3.9
xcb-imagelibxcb-imageUtility library for XCB for XImage and XShmImage, used for QBackingStore and cursor supportauto-detected0.3.9
xcb-utillibxcb-utilUtility library for XCB for atom, aux and eventauto-detected0.3.9
xcb-cursor0libxcb-cursor0Utility library for XCB for cursorauto-detected0.1.1
xkbcommonlibxkbcommonKeymap handling-xkbcommon or auto-detected0.5.0
xkbcommon-x11libxkbcommon-x11Keymap handlingauto-detected0.5.0
FontconfiglibfontconfigFont customization and configuration-fontconfig or auto-detected2.6
FreeTypelibfreetypeFont engine2.3.0
XextlibXextX Extensions6.4.3
X11libX11X11 client-side library6.2.1
xcblibxcbX C Binding library1.11
X11-xcblibX11-xcbXlib/XCB interface library1.3.2
SMlibSMX Session Management-sm or auto-detected6.0.4
ICElibICEInter-Client Exchange-sm or auto-detected6.3.5
gliblibglib-2.0Common event loop handling-glib or auto-detected2.8.3
pthreadlibpthreadMultithreading2.3.5

Development packages for the above libraries contain header files that are used when building Qt from its source code. The package names may differ among Linux distributions, and some distributions may not include all packages in the default configuration for their package management system.

As an example, you can run the following command to install the recommended packages on Debian-based GNU/Linux systems:

 apt install \
     libfontconfig1-dev \
     libfreetype-dev \
     libx11-dev \
     libx11-xcb-dev \
     libxcb-cursor-dev \
     libxcb-glx0-dev \
     libxcb-icccm4-dev \
     libxcb-image0-dev \
     libxcb-keysyms1-dev \
     libxcb-randr0-dev \
     libxcb-render-util0-dev \
     libxcb-shape0-dev \
     libxcb-shm0-dev \
     libxcb-sync-dev \
     libxcb-util-dev \
     libxcb-xfixes0-dev \
     libxcb-xinerama0-dev \
     libxcb-xkb-dev \
     libxcb1-dev \
     libxext-dev \
     libxfixes-dev \
     libxi-dev \
     libxkbcommon-dev \
     libxkbcommon-x11-dev \
     libxrender-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.

Qt does not maintain a comprehensive package list for all distributions. Some distributions, such as Red Hat and its derivatives, may require additional repositories for certain packages (e.g., EPEL for RHEL). Consult your distribution's documentation for specific package names. RHEL users can contact Red Hat support for detailed information.

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

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.