Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5594 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  QT en Static Linking

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

QT en Static Linking

n°1259212
i'n'i
Posté le 05-12-2005 à 16:05:57  profilanswer
 

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 ;)

mood
Publicité
Posté le 05-12-2005 à 16:05:57  profilanswer
 

n°1261256
IrmatDen
Posté le 07-12-2005 à 19:21:56  profilanswer
 

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...

n°1261537
i'n'i
Posté le 08-12-2005 à 10:41:22  profilanswer
 

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...
 
!!
 

n°1261667
IrmatDen
Posté le 08-12-2005 à 13:44:59  profilanswer
 

Pourquoi tu fais 'make sub-src' au lieu de 'make' tout court??

n°1261697
i'n'i
Posté le 08-12-2005 à 14:08:18  profilanswer
 

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
 

n°1262113
IrmatDen
Posté le 08-12-2005 à 20:52:40  profilanswer
 

Si je ne me trompe pas, ça s'adresse à Qt3 ;)
Tu as essayé quoi d'autre?

n°1262204
i'n'i
Posté le 08-12-2005 à 22:41:38  profilanswer
 

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.

n°1262207
i'n'i
Posté le 08-12-2005 à 22:49:21  profilanswer
 

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!


Message édité par i'n'i le 08-12-2005 à 22:49:41
n°1263180
IrmatDen
Posté le 09-12-2005 à 21:13:37  profilanswer
 

As-tu essayé de lancer un make dans le répertoire src après le ./configure? Ca donne quoi?

n°1264691
i'n'i
Posté le 12-12-2005 à 16:50:16  profilanswer
 

ç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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  QT en Static Linking

 

Sujets relatifs
Methode static dans une classProblème de variable static
variable staticInitialisation complexe d'une variable globale ("code static")
static_cast(x) vs (x)Tableau en static
[C++] Lecture d'une variable static d'une autre classe??2 Questions : fonction Chr() et variable static
[Java] class static et constructeur[Apache] Cookies en "static" ?
Plus de sujets relatifs à : QT en Static Linking


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)