Building Qt for Linux

From Qt Wiki
Jump to: navigation, search
This article references old versions of Qt and may not be accurate. If you like to revise it remove this remark afterwards.

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Introduction

Qt is a very large framework, and it has many modules, configuration switches, and optional features. Faced with building it from source, it can be a challenge to figure out how to install the dependencies you need, and how to get some of the more obscure features to build!

The features that you can consider as a "standard minimum configuration" on Linux are: ZLib, JPEG, TIFF, MNG, PNG, OpenGL, GStreamer, ALSA, FreeType, FontConfig, CUPS, D-Bus, X*, OpenSSL, and SQLite.

Following is a comprehensive list of package names for the dependencies for all versions of Qt between 4.5 and trunk as of December 2010. Presently only Ubuntu package names have been included, but more distros should follow as the package names are figured out.

The "Module" column indicates the lowest-level module which uses the feature (i.e., if QtCore uses the feature, QtGui will not be listed). Multiple modules are only listed if they are not interdependent.

Possible Configurations for different Qt Versions

Dependency Module Configure switch Qt/X11? Qt/Embedded? Qt 4.5 Qt 4.6 Qt 4.7 Qt 4.8 (trunk)
ZLib QtCore -[qt|system]-zlib X X X X X X
JPEG QtCore -[qt|system]-libjpeg X X X X X X
TIFF QtCore -[qt|system]-libtiff X X X X X X
MNG QtCore -[qt|system]-libmng X X X X X X
PNG QtCore -[qt|system]-libpng X X X X X X
OpenGL QtOpenGL -opengl X X X X X
OpenGL ES 1 QtOpenGL -opengl es1 X X X [1] X X X
OpenGL ES 1 CL QtOpenGL -opengl es1cl X X X [1] X X X
OpenGL ES 2 QtOpenGL -opengl es2 X X X [1] X X X
EGL QtOpenGL -egl, -opengl [1|1cl|2] X X [2] X X X X
OpenVG QtOpenVG -openvg X X X X X
ShivaVG QtOpenVG -openvg X X X X X
DirectFB QtGui -[qt|plugin]-gfx-directfb X X X X X
GStreamer [2] Phonon -phonon X X X X X X
PulseAudio Phonon -phonon-backend X X X X X
ALSA QtMultimedia -multimedia X X X X X
NAS Sound QtGui -system-nas-sound X X X X X
FreeType QtGui -freetype X X X X X X
FontConfig QtGui -fontconfig X X X X X
tslib QtGui -[qt|plugin]-mouse-tslib X X X X X
Cups QtGui -cups X X X X X X
D-Bus QtDBus -dbus[-linked] X X X X X X
ICD QtNetwork -icd X X X X
GLib QtCore -glib X X X X X X
GTK QtGui -gtkstyle X X X X X
X11 QtGui none X X X X X
XShape QtGui -xshape X X X X X
XCursor QtGui -xcursor X X X X X
XFixes QtGui -xfixes X X X X X
XRandr QtGui -xrandr X X X X X
XRender QtGui, QtWebKit -xrender X X X X X
XVideo Phonon, QtMultimedia -xvideo X X X X X
Xinerama QtGui -xinerama X X X X X
XInput QtGui -xinput X X X X X
Session management QtGui -sm X X X X X
OpenSSL QtNetwork, QtWebKit -openssl[-linked] X X X X X X
Interbase QtSql -[qt|plugin]-sql-ibase X X X X X X
MySQL QtSql -[qt|plugin]-sql-mysql X X X X X X
ODBC QtSql -[qt|plugin]-sql-odbc X X X X X X
PostgreSQL QtSql -[qt|plugin]-sql-psql X X X X X X
SQLite 2 QtSql -[qt|plugin]-sql-sqlite2 X X X X X X
SQLite 3 QtSql -[qt|plugin]-sql-sqlite X X X X X X
TDS QtSql -[qt|plugin]-sql-tds X X X X X X
Dependency Ubuntu Lucid Ubuntu Maverick
ZLib zlib1g-dev zlib1g-dev
JPEG libjpeg62-dev libjpeg62-dev
TIFF libtiff4-dev libtiff4-dev
MNG libmng-dev libmng-dev
PNG libpng12-dev libpng12-dev
OpenGL mesa-common-dev, libglu1-mesa-dev mesa-common-dev, libglu1-mesa-dev
OpenGL ES 1 none libgles1-mesa-dev [3]
OpenGL ES 1 CL none libgles1-mesa-dev
OpenGL ES 2 none libgles2-mesa-dev
EGL none libgles2-mesa-dev or libegl1-mesa-dev
OpenVG none libopenvg1-mesa-dev
ShivaVG none none
DirectFB libdirectfb-dev libdirectfb-dev
GStreamer libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev
PulseAudio libpulse-dev libpulse-dev
NAS Sound libaudio-dev libaudio-dev
ALSA libasound2-dev libasound2-dev
FreeType libfreetype6-dev libfreetype6-dev
FontConfig libfontconfig1-dev libfontconfig1-dev
tslib libts-dev libts-dev
Cups libcups2-dev libcups2-dev
D-Bus libdbus-1-dev libdbus-1-dev
ICD none none
GLib libglib2.0-dev libglib2.0-dev
GTK libgtk2.0-dev libgtk2.0-dev
X11 libx11-dev, libxext-dev libx11-dev, libxext-dev
XCursor libxcursor-dev libxcursor-dev
XFixes libxfixes-dev libxfixes-dev
XRandr libxrandr-dev libxrandr-dev
XRender libxrender-dev libxrender-dev
XVideo libxv-dev libxv-dev
Xinerama libxinerama-dev libxinerama-dev
XInput libxi-dev libxi-dev
Session management libsm-dev libsm-dev
OpenSSL libssl-dev libssl-dev
Interbase firebird2.1-dev firebird2.5-dev or firebird2.1-dev
MySQL libmysqlclient-dev libmysqlclient-dev
ODBC [4] unixodbc-dev or libiodbc2-dev unixodbc-dev or libiodbc2-dev
PostgreSQL libpq-dev libpq-dev
SQLite 2 libsqlite0-dev libsqlite0-dev
SQLite 3 libsqlite3-dev libsqlite3-dev
TDS freetds-dev freetds-dev
  1. 1.0 1.1 1.2 Though supported, I have not been able to figure out how to build this option in Qt 4.5
  2. 2.0 2.1 Need to pass -DMESA_EGL_NO_X11_HEADERS to "configure" when building Qt/Embedded. Possibly this could be done via .qmake.cache?
  3. This also requires a provider of libGLES_CM.so.
  4. Using libiodbc2 instead of unixodbc is supported starting in Qt 4.6.