Suite à l'article sur la compilation statique sous Windows, voici celui pour GNU/Linux.
J'utiliserai les versions en cours de développement, donc pensez à adapter les liens de téléchargement.


Du côté de Qt4

Les sources de Qt4 sont disponibles ici.
Les opérations à venir se feront sous Lubuntu 13.04, version 32 bits, et le dossier d'extraction des sources sera /opt/Qt4.8.4.
Ouvrez une console, puis tapez :

# Configuration
$ cd /opt/Qt4.8.4
$ ./configure \
    -static \
    -release \
    -nomake demos \
    -nomake examples \
    -nomake tests \
    -qt-zlib \
    -qt-libpng \
    -qt-libjpeg

# Compilation
$ make -j 6

Il est possible d'activer/désactiver des fonctionnalités/plugins, essayez la commande :

$ ./configure help

Plus d'informations : Building static Qt on Linux.


Du côté de Qt5

Avant de commencer, vous aurez besoin de ces paquets :

$ sudo apt install libxcb-xinerama0-dev '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

Téléchargez Qt5 : qt-everywhere-src-5.12.0.tar.xz. Décompressez :

tar xf qt-everywhere-src-5.12.0.tar.xz

Rendez-vous dans le dossier et :

# Configuration
$ ./configure \
    -static \  # seulement pour une version statique, sinon supprimez
    -opensource \
    -confirm-license \
    -release \
    -opengl desktop \
    -qt-freetype \
    -qt-libjpeg \
    -qt-libpng \
    -qt-pcre \
    -qt-sqlite \
    -qt-xcb \
    -qt-zlib \
    -no-feature-testlib \
    -nomake examples \
    -nomake tests \
    -skip qt3d \
    -skip qtwebengine \
    -extprefix "/opt/Qt-5.12.0" \
    -prefix "/opt/Qt-5.12.0"

# Compilation
$ make -j 6

# Installation
$ make install

J'ai volontairement désactivé pas mal de composants, mais vous pouvez très bien les réactiver en supprimant les lignes -no-feature-XXX, -no-XXX, -nomake XXX et -skip XXX.

Installez le paquet libclang-dev et relancez la compilation si vous rencontrez cette erreur :

Project ERROR: Cannot find libclang's main header file, candidate: /usr/lib/llvm-6.0/include/clang-c/Index.h.
make: [Makefile:865: module-qttools-install_subtargets] Error 3

Plus d'informations : Building Qt 5 from Git.


Du côté du projet

Compilez-le. C'est tout :)

N'hésitez pas à compresser le binaire final :

$ upx --best FILE

Historique

  • 2018-12-17 : Ajout de la partie Qt5.