HelloWorld en Qt qui ne compile pas... [Debian] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 21-06-2003 à 08:47:16
Avant de compiler, tape :
export QTDIR=/usr/share/qt/
export QMAKESPEC=linux-g++
Marsh Posté le 21-06-2003 à 14:42:13
|
Ça ne fonctionne pas
Mais j'ai vu que j'avais un dossier /usr/share/qt3/ avec tous le fichier cité ci-dessus.
Alors autre tentative:
|
Ronjudju !
Marsh Posté le 21-06-2003 à 19:03:22
Lionz a écrit : ou est le rapport avec debian ? |
Que c'est sur Debian ?
Qu'à priori, ça pourrait fonctionner sur autre chose qu'une Debian puisque je suis la méthode...
Si tu sais d'où vient le problème, tu expliques, sinon...
Marsh Posté le 21-06-2003 à 20:10:35
Le probleme c'est que le linkeur ne trouve pas les lib qt. Essaye avec -lqt-mt a la place de -lqt.
Par contre utiliser qmake pour un seul fichier, c'est pas tres utile.
Marsh Posté le 22-06-2003 à 18:44:35
Elche a écrit : Le probleme c'est que le linkeur ne trouve pas les lib qt. Essaye avec -lqt-mt a la place de -lqt. |
En effet, j'ai mis cela dans le Makefile généré et j'ai fait les export avec « qt3 » avant et ça a compilé parfaitement.
Pour cela, je suis content
Mais, ce n'est pas normal que qmake ne génère pas un Makefile correct.
De plus, j'ai essayé de faire une appli bidon dans Kdevelop qui affiche juste un cadre et ce que j'ai obtenu à la compilation dans Kdevelop, c'est que tous les headers de Qt étaient absents
J'en reviens donc à me demander si les paquets Debian n'ont pas un problème, si certaines variables ne sont pas initialisées, si les fichiers sont mal placés ou je ne sais quoi encore.
Marsh Posté le 22-06-2003 à 19:48:48
J'ai finalement trouvé un moyen en lisant ce rapport de bug:
http://bugs.debian.org/cgi-bin/bug [...] bug=180326
Juste après avoir exécuté « qmake -project », il faut modifier le fichier *.pro en y ajoutant la ligne:
CONFIG += thread
Ensuite, le qmake et le make fonctionne.
D'après ce que j'ai compris, il existe deux types de bibliothèques pour Qt3: threadées et non threadées.
J'utilise celles qui sont threadées (« -mt » dans le nom de leur paquet), donc je dois ajouter ce paramètre car par défaut, sur Debian, celles utilisées sont non threadées.
Marsh Posté le 21-06-2003 à 02:44:07
C'est le premier tutoriel sur le site de Trolltech et je n'arive même pas à le compiler sur ma Debian SID
http://doc.trolltech.com/3.1/tutorial1-01.html
Le code:
Je l'ai enregistré dans le fichier main.cpp.
Pour le compiler, je fais:
qmake -project
qmake
make
Et c'est le drame, j'obtiens celà au make:
g++ -c -pipe -Wall -W -O2 -DQT_NO_DEBUG -I/usr/share/qt3/mkspecs/default -I. -I. -I/include -o main.o main.cpp
main.cpp:7:26: qapplication.h : Aucun fichier ou répertoire de ce type
main.cpp:8:25: qpushbutton.h : Aucun fichier ou répertoire de ce type
main.cpp: Dans function « int main(int, char**) »:
main.cpp:13: error: `QApplication' undeclared (first use this function)
main.cpp:13: error: (Each undeclared identifier is reported only once for each
function it appears in.)
main.cpp:13: error: erreur d'analyse syntaxique before `(' token
main.cpp:15: error: `QPushButton' undeclared (first use this function)
main.cpp:16: error: `hello' undeclared (first use this function)
main.cpp:18: error: `a' undeclared (first use this function)
main.cpp:12: attention : unused parameter `int argc'
main.cpp:12: attention : unused parameter `char**argv'
make: *** [main.o] Erreur 1
Alors, j'ai essayé d'écrire cela pour les include:
puisque les headers de Qt sont dans /usr/include/qt3/.
Après avoir refait les qmake comme avant, j'obtiens au make ceci:
g++ -c -pipe -Wall -W -O2 -DQT_NO_DEBUG -I/usr/share/qt3/mkspecs/default -I. -I. -I/include -o main.o main.cpp
Dans le fichier inclus à partir de /usr/include/qt3/qobjectdefs.h:42,
à partir de /usr/include/qt3/qwindowdefs.h:43,
à partir de /usr/include/qt3/qwidget.h:42,
à partir de /usr/include/qt3/qdesktopwidget.h:40,
à partir de /usr/include/qt3/qapplication.h:42,
à partir de main.cpp:7:
/usr/include/qt3/qglobal.h:710:21: qconfig.h : Aucun fichier ou répertoire de ce type
/usr/include/qt3/qglobal.h:773:23: qfeatures.h : Aucun fichier ou répertoire de ce type
make: *** [main.o] Erreur 1
J'ai été voir, et j'ai bien qconfig.h et qfeatures.h (ainsi que les autres) dans /usr/include/qt3/ donc ils sont là !
C'est balot de s'arrêter à la première étape d'un tutoriel
Je ne connaitrais jamais Qt
Message édité par eL_Shaman___ le 21-06-2003 à 02:46:14