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.