[QT] application statique
Char Snipeur
Messages postés
10112
Date d'inscription
Statut
Contributeur
Dernière intervention
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
voilà, je voudrais compiler mon programme QT en static (plus facile à distribuer que de fournir les dll).
Seulement je n'y arrive pas...
j'ai bien les versions statiques des bibliothèques (libQtCore4.a etc.).
J'ai essayé en ajoutant CONFIG+=static dans le fichier projet, et j'ai même bidouiller le makefile pour ajouter -static à la fin de l'édition des liens, mais sans succès.
Si quelqu'un sait comment faire.
Merci.
--
Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur
voilà, je voudrais compiler mon programme QT en static (plus facile à distribuer que de fournir les dll).
Seulement je n'y arrive pas...
j'ai bien les versions statiques des bibliothèques (libQtCore4.a etc.).
J'ai essayé en ajoutant CONFIG+=static dans le fichier projet, et j'ai même bidouiller le makefile pour ajouter -static à la fin de l'édition des liens, mais sans succès.
Si quelqu'un sait comment faire.
Merci.
--
Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur
Configuration: AMD Atlhon XP 2400+ 1Go DDRAM 2700 CM : ABIT AN7 Radeon Asus 9600SE OS : win XP pack1; Mandrake 10.0
A voir également:
- [QT] application statique
- Application word et excel gratuit - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Desinstaller application windows - Guide
- Application franceconnect - Guide
- Qt sdk - Télécharger - Langages
4 réponses
Cette possibilité ne m'a jamais effleuré l'esprit...
Le seul point qui m'ait interpellé: si 'libQtCore4.a' doit être appellée en place de 'libQtCore.so.4', alors il faut peut-être modifier 'QT += core' en 'QT += core4'.
Ce n'est qu'un humble avis ;-)
Le seul point qui m'ait interpellé: si 'libQtCore4.a' doit être appellée en place de 'libQtCore.so.4', alors il faut peut-être modifier 'QT += core' en 'QT += core4'.
Ce n'est qu'un humble avis ;-)
Là je suis sous windows, donc, il faut appeler libQtCore4.a à la place de QtCore4.dll, ce que je ne comprends pas c'est que on lie avec -lQtCore4, mais que l'option -static à la fin est ignorée.
Voici la commande d'édition de lien
Voici la commande d'édition de lien
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release/MC_QtBuilder_3D.exe object_script.MC_QtBuilder_3D.Release -L'd:/Qt/sources/qt-win-opensource-src-4.5.0/lib' -lopengl32 -lglu32 -lgdi32 -luser32 -lmingw32 -lqtmain -lQt3Support4 -lQtOpenGL4 -lQtGui4 -lQtCore4 -static
Toutes les bibliothèques existent en statique (c'est en effet une condition nécessaire)
L'éditeur de lien peut lier en statique et dynamique, c'est son comportement par défaut (si il n'y a pas de bibliothèque dynamique, il prend la statique). Par contre, en précisant -static il doit ignorer les bibliothèques dynamiques. Or, moi, il m'ignore les statiques.
L'éditeur de lien peut lier en statique et dynamique, c'est son comportement par défaut (si il n'y a pas de bibliothèque dynamique, il prend la statique). Par contre, en précisant -static il doit ignorer les bibliothèques dynamiques. Or, moi, il m'ignore les statiques.
Bon, je pense avoir saisi le problème. Les .a présent dans lib/ ne sont pas de vrais bibliothèques, en essai d'afficher le contenu avec ar, ça fait référence aux DLL. Voilà qui explique pas mal de chose.
Il faudrait donc que je recompile les sources de QT avec l'option static pour avoir de vrai bibliothèques statiques. à moins qu'il y ait plus simple en convertissant les dll ?
Il faudrait donc que je recompile les sources de QT avec l'option static pour avoir de vrai bibliothèques statiques. à moins qu'il y ait plus simple en convertissant les dll ?