Problème de compilation avec Qt

Problème de compilation avec Qt - Linux et OS Alternatifs

Marsh Posté le 20-10-2004 à 09:17:08    


 
Bonjour, j'ai déja posé cette question sur le forum C++ de programmation mais on m'y a conseillé de vous la poser également.
 
Je ne suis pas administrateur sur ma machine et j'ai voulu faire joujou avec gcc en installant sur mon compte une version plus récente (la 3.3.2) à l'adresse ~/toto et éviter d'utiliser l'ancienne (la 2.96).  
 
Le problème c'est que je me retrouve avec un programmes qui n'est plus compilable simultanément sous les deux versions, alors que précédemment j'arrivais à le compiler au moins sous l'ancienne (la 2.96) :
 
#include <qapplication.h>  
#include <qlabel.h>  
 
int main( int argc, char **argv )  
{  
    QApplication myapp( argc, argv );  
    QLabel* myLabel = new QLabel("Hello World!",0,"my hello" );  
    myLabel->setGeometry(400,300,120,90);  
    myapp.setMainWidget(myLabel);  
    myLabel->show();  
    return myapp.exec();  
}  
 
avec la version 2.96, la commande :  
 
g++ -O -o main main.C -I/repqt/include -L/repqt/lib -lqt  
 
fonctionne et me donne le résultat attendu (repqt fait référence au chemin où j'ai installé Qt).  
 
Si j'essaye d'utiliser la version 3.3.2 (remplacement de g++ par l'adresse du binaire lançant l'éxécution du compilateur) que j'ai installé, la même commande donne le résultat :  
 
/tmp/ccrBgMqt.o: In function `main':  
/tmp/ccrBgMqt.o(.text+0x27): undefined reference to `QApplication::QApplication[in-charge](int&, char**)'  
/tmp/ccrBgMqt.o(.text+0x4c): undefined reference to `QString::QString[in-charge](char const*)'  
/tmp/ccrBgMqt.o(.text+0x70): undefined reference to `QLabel::QLabel[in-charge](QString const&, QWidget*, char const*, unsigned)'  
/tmp/ccrBgMqt.o(.text+0x8a): undefined reference to `QString::shared_null'  
....  
/tmp/ccrBgMqt.o(.gnu.linkonce.r._ZTV6QGList+0xc): undefined reference to `QGList::clear()'  
/tmp/ccrBgMqt.o(.gnu.linkonce.r._ZTV6QGList+0x10): undefined reference to `QGList::~QGList [in-charge]()'  
/tmp/ccrBgMqt.o(.gnu.linkonce.r._ZTV6QGList+0x14): undefined reference to `QGList::~QGList [in-charge deleting]()'  
....  
collect2: ld returned 1 exit status  
 
(les ... correspondent à des lignes similaires).  
 
D'où vient l'erreur ? Est ce qu'il manque une ligne à la compilation ? En fait, est ce qu'il faut que je rajoute qqch pour permettre au compilateur de trouver l'adresse des librairies Qt (pourtant une commande de compilation écrite de manière similaire fonctionnait avec la précédente version de g++) ? J'espère également que mes variables d'environnement, notamment LD_LIBRARY_PATH, sont bien définies.  
 
Sur le forum C++, on m'a conseillé, pour résoudre mon problème, de recompiler Qt lors de la création de mon éxécutable. Je voudrais également savoir en quoi cela consiste car je ne l'ai pas très bien compris. N'est ce pas ce que j'ai déja fait à l'installation de ma version de Qt ?

Reply

Marsh Posté le 20-10-2004 à 09:17:08   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed