QT en Static Linking - C++ - Programmation
Marsh Posté le 07-12-2005 à 19:21:56
Salut,
$QTDIR, c'est une variable d'environnement qui doit pointer vers le répertoire Qt (pas les includes ou les libs, la racine)
La lib que tu créeras de cette façon, seras utilisable pour tous les binaires que tu distribueras à cette plateforme. Cette plateforme étant la config du pc, les libs dispo...
Marsh Posté le 08-12-2005 à 10:41:22
ok je vois ce qu'est mon QTDIR, je donc fais ceci :
cd $QTDIR
./configure -static <other parameters>
make sub-src
mais je ne vois pas les fichiers libqt.a ou libqt-mt.a
et quand j'essaye de faire ça :
cd $QTDIR/src
make staticlib
j'ai un message du type : aucune règle pour fabriquer la cible...
!!
Marsh Posté le 08-12-2005 à 13:44:59
Pourquoi tu fais 'make sub-src' au lieu de 'make' tout court??
Marsh Posté le 08-12-2005 à 14:08:18
Ben c'est ce qu'ils me disent de faire sur la page http://doc.trolltech.com/qq/qq11-unix-deployment.html :
make sub-src
Marsh Posté le 08-12-2005 à 20:52:40
Si je ne me trompe pas, ça s'adresse à Qt3
Tu as essayé quoi d'autre?
Marsh Posté le 08-12-2005 à 22:41:38
Justement pas grand chose,mais je cherche, ça doit bien etre prevu pour Qt4!
Alors j'essaye de faire les
./configure -static <other parameters>
et
make sub-src
lors de l'installation de Qt, ou après.
J'essaye de compiler mon appli en ajoutant
mystaticconfig {
QMAKE_LIBS_QT =
QMAKE_LIBS_QT_THREAD =
LIBS += $(QTDIR)/lib/libqt.a
}
a mon .pro
...
mais ça n'a pas l'air de me faire mon appli en "static", alors je cherche en vain des infos sur le net car la je bloque vraiment.
Marsh Posté le 08-12-2005 à 22:49:21
La seule "avancée" que je note, c'est que lorsque j'installe Qt normalement, dans mon /lib, il n'y a pas de fichiers avec l'extension .a
alors que si je l'installe avec l'optio -static pour le .configure et sub-src pour la make oui.
De plus dans ce dernier cas de figure, je vois des mots "static" qui aparaissent lors de la compilation.
Mais lorsque je fait le make-install, la taille de mes 2 repertoires (/tmp/qt...... et /usr/local/Trolltech/qt...) devient très importante (3,7 Go) chacun alors je stoppe ce procédé, et actuellement j'essaye de faire mes
./configure -static <other parameters>
et
make sub-src
une fois Qt installé.
Quant à refaire un make install.. je ne sais pas, je suis trop dans le flou. aïe!
Marsh Posté le 09-12-2005 à 21:13:37
As-tu essayé de lancer un make dans le répertoire src après le ./configure? Ca donne quoi?
Marsh Posté le 12-12-2005 à 16:50:16
ça y est j'ai trouvé !
Trolltech l'explique sur cette page : http://doc.trolltech.com/4.1/deployment-x11.html qu'ils ont mis en ligne il n'y a pas longtemps apparement.
Je fais donc dans l'ordre :
cd /path/to/Qt
./configure -static -prefix /path/to/Qt -no-xrandr -no-Xinerama
make sub-src
cd /monappli/
make clean
PATH=/path/to/Qt/bin:$PATH
export PATH
qmake -config release
make
et ça marche, mon appli tourne sur des debian dépourvues de qt!
L'option "-no-Xinerama" me permet de ne plus avoir ce message d'erreur :
/minmaxpro: error while loading shared libraries: libXinerama.so.2: cannot open shared object file: No such file or directory
Merci pour vos reponses.
Marsh Posté le 05-12-2005 à 16:05:57
Salut,
voilà je bosse sous UNIX (Debian) avec QT4 et je désire compiler mes sources en 'static libraries' pour pouvoir faire tourner mon appli sur d'autres PC Debian sans que soit installé QT.
Je suis donc allé sur cette page : http://doc.trolltech.com/qq/qq11-unix-deployment.html
où il me disent de faire ceci :
cd $QTDIR
./configure -static <other parameters>
make sub-src
puis
cd $QTDIR/src
make staticlib
à ce stade je devrais avoir un fichier libqt.a ou libqt-mt.a
Mais je me demande ceci :
- quel est le $QTDIR?
- faut il faire cette manip lorsque j'installe QT pour la 1ere fois (i.e. ./configure -static au lieu de ./configure, make staticlib au lieu de static)?
Si quelqu'un a déjà été confronté à ce problème où connais ça, merci de me répondre