[Qt/qwt] erreur de compilation

erreur de compilation [Qt/qwt] - C++ - Programmation

Marsh Posté le 17-02-2010 à 11:01:05    

Bonjour :D,
Je travaille sous Ubuntu 9.10 avec Qt4, pour mon projet j'ai besoin d'utiliser la bibliothèque qwt.
Pour cela je l'ai compilé et installé, j'ai récupéré la version 5.2.0 de qwt.
 
 
Grâce à elle j'ai pu compiler et exécuter tout les exemples.
 
Je me lance sur un petit test personnel et voila que le linker me retourne :

Citation :

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp
g++ -Wl,-O1 -o testGUI main.o -L/usr/lib -lqwt -lQtGui -lQtCore -lpthread
/usr/bin/ld: cannot find -lqwt
collect2: ld returned 1 exit status
make: *** [testGUI] Erreur 1


 
Voici mon projet de test :
.pro

Code :
  1. TEMPLATE = app
  2. TARGET =
  3. DEPENDPATH += .
  4. INCLUDEPATH += .
  5. LIBS += -lqwt
  6. # Input
  7. SOURCES += main.cpp


 
.cpp

Code :
  1. #include <QApplication>
  2. #include <QWidget>
  3. #include <qwt_plot.h>
  4. #include <qwt_plot_grid.h>
  5. int main (int argc, char *argv[])
  6. {
  7.     QApplication app(argc, argv);
  8.     //widget servant de fenêtre
  9.     QWidget fenetre;
  10.     fenetre.setFixedSize(300, 300);
  11.     //widget qui contiendra le graphique
  12.     QwtPlot *mainPlot = new QwtPlot(&fenetre);
  13.     QString bla="conteneur du graphe";
  14.     QwtText titre(bla,QwtText::AutoText);
  15.     mainPlot->setTitle(titre);
  16.     fenetre.show();
  17.     return app.exec();
  18. }


 
 
J'aimerais savoir comment résoudre ce problème et ce qui en ai la cause.
Merci :)


Message édité par ailonn le 17-02-2010 à 11:01:36
Reply

Marsh Posté le 17-02-2010 à 11:01:05   

Reply

Marsh Posté le 17-02-2010 à 11:38:02    

Il faut que tu rajoutes
LIBS += -L/chemin/vers/la/lib/libqwt.so -lqwt
 
Je pense que le qwt que tu as compilé n'est pas installé dans le répertoire par défaut des libs (/usr/lib), mais ailleurs (peut-être /usr/local/lib).


---------------
Be the one with the flames.
Reply

Marsh Posté le 17-02-2010 à 11:57:42    

J'ai fait ce que tu m'as conseillé mais le linker ne trouve toujours pas -lqwt.
 
j'ai ajouté cette ligne :

Code :
  1. LIBS += -L/usr/local/qwt-5.2.0/lib/libqwt.so -lqwt

Reply

Marsh Posté le 17-02-2010 à 12:02:29    

L'option -L est pour l'emplacement du répertoire (dossier) d'une bibiothèque, pas pour le nom de la bibliothèque.
L'option -l est pour le nom de la bibliothèque (mais sans le préfixe "lib" parce que, pour des raisons historiques, on voulait économiser trois caractères pour ne pas avoir des lignes de commandes trop longues).

Reply

Marsh Posté le 17-02-2010 à 12:09:37    

olivthill a écrit :

L'option -L est pour l'emplacement du répertoire (dossier) d'une bibiothèque, pas pour le nom de la bibliothèque.
L'option -l est pour le nom de la bibliothèque (mais sans le préfixe "lib" parce que, pour des raisons historiques, on voulait économiser trois caractères pour ne pas avoir des lignes de commandes trop longues).


 
Prenant en compte ta remarque j'ai modifié la LIBS de telle façon :

Code :
  1. LIBS += -L/usr/local/qwt-5.2.0/lib/ -lqwt


 
Et... et...
 
ça marche !!!
 
En un mot finissant : MERCI !!  :jap:  :jap:  :love:  :love:


Message édité par ailonn le 17-02-2010 à 12:42:25
Reply

Sujets relatifs:

Leave a Replay

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