Hello,
Je suis en train de voir pour créer une version standalone de mon projet écrit en C++ avec Qt, et je rencontre quelques difficultés pour le faire.
Pour ceux qui ne le sauraient pas, on dit qu'un logiciel est délivré en version standalone lorsqu'il fournit son exécutable ainsi que tous les fichiers bibliothèques dont il a besoin, de telle sorte que l'utilisateur final n'a rien à installer pour pouvoir l'utiliser.
Dans mon cas, j'ai pu déterminer grâce à la commande readelf -d deuchnord-hermes | grep NEEDED
(où deuchnord-hermes
est mon exécutable) que mon programme nécessitait les librairies suivantes pour fonctionner :
- libQt5Widgets.so.5
- libQt5Gui.so.5
- libQt5Xml.so.5
- libQt5Network.so.5
- libQt5Core.so.5
- libstdc++.so.6
- libgcc_s.so.1
- libc.so.6
J'ai retrouvé ces librairies sur mon ordinateur servant pour le développement (une machine Arch Linux) dans le répertoire /usr/lib
, et je les ai copiées à côté de l'exécutable, un peu comme on le fait habituellement sous Windows avec les DLLs, mais fort est de constater que ce n'est pas suffisant. En effet, lorsque je tente de lancer mon programme sur une machine virtuelle Ubuntu (sur laquelle Qt n'est pas installée), voici ce que j'obtiens :
1 2 3 4 5 6 | ./deuchnord-hermes: /usr/lib/x86_64-linux-gnu/libQt5Network.so.5: version `Qt_5' not found (required by ./deuchnord-hermes) ./deuchnord-hermes: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by ./deuchnord-hermes) ./deuchnord-hermes: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.6' not found (required by ./deuchnord-hermes) ./deuchnord-hermes: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found (required by ./deuchnord-hermes) ./deuchnord-hermes: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5: version `Qt_5' not found (required by ./deuchnord-hermes) ./deuchnord-hermes: /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5: version `Qt_5' not found (required by ./deuchnord-hermes) |
Pour que vous puissiez mieux visualiser, voici le contenu du répertoire de mon exécutable :
Qu'est-ce que je fais mal ?
Merci d'avance