un probleme avec qt - C++ - Programmation
Marsh Posté le 25-04-2003 à 19:32:49
apparemment il manque une référence vers les librairies puisque les headers ne sont pas trouvés (dixit le premier message d'erreur du compilateur).
il y a un topic très récent qui traite pratiquement de la même chose.
Au fait: mauvaise cat -> C/C++
Marsh Posté le 25-04-2003 à 19:37:43
voilà c'était ici: http://forum.hardware.fr/forum2.php3?post=35654&cat=10
regarde si ça répond à ta question
Marsh Posté le 26-04-2003 à 10:31:07
les headers que tu mets sont ceux de Qt 1.x, depuis la version 2, il faut utiliser qapplication.h et qpushbutton.h
Normalement qapp.h devrait exister pour la compatibilité, mais je sais pas comment mandrake a fait ca
Marsh Posté le 27-04-2003 à 16:44:32
drasche a écrit : voilà c'était ici: http://forum.hardware.fr/forum2.php3?post=35654&cat=10 |
ca repond a ma question... Merci!
Marsh Posté le 27-04-2003 à 18:22:16
Sauf que maintenant!
[boco@localhost Qt]$ g++ -I/usr/lib/qt3/include -o ex1 ex1.cpp -lqt
ex1.cpp: In function `int main(int, char**)':
ex1.cpp:13: no matching function for call to `QPushButton::QPushButton(const char[11])'
/usr/lib/qt3/include/qpushbutton.h:134: candidates are: QPushButton::QPushButton(const QPushButton&)
/usr/lib/qt3/include/qpushbutton.h:66: QPushButton::QPushButton(const QIconSet&, const QString&, QWidget*, const char* = 0)
/usr/lib/qt3/include/qpushbutton.h:65: QPushButton::QPushButton(const QString&, QWidget*, const char* = 0)
/usr/lib/qt3/include/qpushbutton.h:64: QPushButton::QPushButton(QWidget*, const char* = 0)
ex1.cpp:16: parse error before `.' token
J'ai a peine touché mon code (j'ai arrangé QPushButton) et puis:
[boco@localhost Qt]$ g++ -I/usr/lib/qt3/include -o ex1 ex1.cpp -lqt
/usr//bin/ld: cannot find -lqt
collect2: ld returned 1 exit status
[boco@localhost Qt]$ export QTDIR="/usr/lib/qt3/"
[boco@localhost Qt]$ g++ -I/usr/lib/qt3/include -o ex1 ex1.cpp -lqt
/usr//bin/ld: cannot find -lqt
collect2: ld returned 1 exit status*/
Faudra quand meme m'expliquer!
A bon entendeur. Et merci d'avance
Marsh Posté le 27-04-2003 à 18:53:17
pour le 1er probleme, faut préciser le parent de QPushButton. regarde la doc
pour le 2eme probleme précise le chemin pour la librairie au compilateur
Marsh Posté le 27-04-2003 à 20:07:48
gloop a écrit : pour le 1er probleme, faut préciser le parent de QPushButton. regarde la doc |
non, le premier probleme est simplement lié a une mauvaise utilisation du constructeur (suffisait de mettre 0 comme dernier argument...).
Quant au second, la, c'est plus delicat. Comme tu peux voir dans la partie de shell que je fournis, il y a un export d'effectué. Devrait connaitre le chemin du coup, non? Puis le probleme est apparu tout d'un coup.Comme tu peux voir la premiere compilation avait fonctionné... Je sais pas.......
Marsh Posté le 27-04-2003 à 21:26:09
boco a écrit : |
pour le 1er prob, c'est bien ce que je te dis, c'est le parent. quand tu mets 0, tu utilises le constructeur avec 2 paramètres: le parent et le nom. là, tu dis qu'il y a pas de parent.
pour le 2é probléme, la variable QTDIR n'a rien n'a voir, tu précises soit avec LD_LIBRARY_PATH, soit dans le fichier /etc/ld.so.conf
Marsh Posté le 27-04-2003 à 23:13:31
Je peux te demander ce qu'est que LD_LIBRARY_PATH et le fichier /etc/ld.so.conf? Et comment je precise?
Merci pour ta réponse.
Marsh Posté le 28-04-2003 à 07:47:59
LD_LIBRARY_PATH est une variable d'environnement.
dans les 2 cas ca permet de dire au linker où chercher les librairies. (man ldd)
sinon, tu peux utiliser le paramètre -L du g++ pour lui indiquer où trouver la bibliotheque.
Par contre, ca se peut que libqt.so n'existe pas, mais qu'il n'y ait que libqt-mt.so (version multithreadée de Qt). dans ce cas, faut pas que t'utilises -lqt mais -lqt-mt
Marsh Posté le 25-04-2003 à 19:30:01
salut,
j'ai besoin d'une aide precieuse...pour la realisation de mon mémoire en informatique! En effet, je travaille sous Mandrake 9.0, les librairies qt sont deja installees et pourtant je n'arrive pas à compiler mon premier petit programme test.
Les compilations essayées:
g++ -o ex1 ex1.cpp -lqt
g++ -I /usr/lib/qt3/include/ -o ex1 ex1.cpp [-lqt]
Les erreurs signalées:
ex1.cpp:6:19: qapp.h: No such file or directory
ex1.cpp:7:22: qpushbt.h: No such file or directory
ex1.cpp: In function `int main(int, char**)':
ex1.cpp:13: `QApplication' undeclared (first use this function)
ex1.cpp:13: (Each undeclared identifier is reported only once for each function it appears in.)
ex1.cpp:13: parse error before `(' token
ex1.cpp:18: `QPushButton' undeclared (first use this function)
ex1.cpp:19: `bouton' undeclared (first use this function)
Merci d'avance à celui qui me sauvera de la stagnation, mon mémoire ne pouvant plus avancer à cause de ce problème technique!
Le 'programmito', au passage:
#include < qapp.h>
#include < qpushbt.h>
int main( int argc, char **argv ) {
QApplication a( argc, argv );
QPushButton bouton( "Coucou !!!" );
bouton.resize( 100, 30 );
a.setMainWidget( &bouton );
bouton.show();
return a.exec();
} [quote]
Message édité par boco le 25-04-2003 à 20:19:48