Newsgroup: it.comp.os.linux.development
Titolo: Problema compilazione QT

Salve a tutti!
sto imparando passo-passo con la creazione di gui attraverso le librerie QT.
peccato che all'ultimo passo del tutorial (compreso dentro QT designer),
incappo in un errore del compilatore qmake. in particolare:
ho creato il progetto 
test.pro
, il form.ui e ho usato che il wizard creasse
il main.cpp.
lancio "qmake -o Makefile 
test.pro
" così come descritto nel tutorial e lì
tutto bene....ma quando lancio il "make" per compilare l'applicazione, mi
viene dato questo errore: 
/bin/uic form1.ui -o form1.h
make: /bin/uic: Command not found
make: *** [form1.h] Error 127
a questo punto ho anche provato ad entrare dentro il Makefile per dirigerlo
meglio nella cartella dove può trovare il programma uic..ma a questo punto
mi dà sempre errori riguardo delle librerie mancanti (librerie incluse nel
main.cpp). allora gli copio le librerie nella cartella e gli specifico nel
listato di andarsele a prendere lì...ricreo il Makefile(sempre
specificandogli dove andarsi a prendere il prog uic) e riprovo a lanciare
il make...ma mi trova sì le librerie...ma con annesse un CASINO di errori
nella compilazione.
allora...ho trovato TROPPE difficoltà per essere un tutorial per newbie.
qualcuno mi sa dire dove sbaglio?
grazie mille in anticipo!
ps: sto usando Qmake 1.04a e le QT sono le 3.1.1 su di una Mandrake 9.1

 grazie mille in anticipo!
Spero di esserti stato utile.
--------------------------------
Inviato via 
http://usenet.libero.it

 grazie mille in anticipo!
Spero di esserti stato utile.


 grazie mille in anticipo!
Spero di esserti stato utile.


 
Ti ringrazio almeno per la rassicurazione di non essere da solo. ;-P
infatti avevo letto il tuo post precedente sempre riguardo la compilazione e
speravo in qualche buona nuova.
cmq...appena scopro qlc ti faccio sapere!
grazie ciao!


 make: *** [form1.h] Error 127
Dovrebbe bastare export QTDIR=/dove/hai/installato/le/qt prima di make.
Per sapere la cartella, cerca il file libqt-mt.so. Sarà contenuto in
qualcosa/lib. Quel qualcosa è dove hai installato le QT
(presumibilmente).
Ma perchè le distro non serie (sia Slack che Gentoo lo fanno :-) non
esportano quella variable?
-- 
Andrea Bergia - studente              Linux Registered User #281550

Ciao!
prima di tutto grazie per il post.
ho seguito quello che mi hai detto, ma ricevo il seguente errore. sai cosa
significhi?
[the_phoenix@localhost test]$ export QTDIR=/usr/lib/qt3/
[the_phoenix@localhost test]$ qmake -o Makefile 
test.pro
[the_phoenix@localhost test]$ qmake
[the_phoenix@localhost test]$ make
/usr/lib/qt3//bin/uic form1.ui -o form1.h
g++ -c -pipe -Wall -W -O2 -fomit-frame-pointer -pipe -march=i586
-mcpu=pentiumpro  -DQT_NO_DEBUG -I/usr/lib/qt3//mkspecs/default -I. -I.
-I/usr/lib/qt3//include -o main.o main.cpp
/usr/lib/qt3//bin/uic form1.ui -i form1.h -o form1.cpp
g++ -c -pipe -Wall -W -O2 -fomit-frame-pointer -pipe -march=i586
-mcpu=pentiumpro  -DQT_NO_DEBUG -I/usr/lib/qt3//mkspecs/default -I. -I.
-I/usr/lib/qt3//include -o form1.o form1.cpp
/usr/lib/qt3//bin/moc form1.h -o moc_form1.cpp
g++ -c -pipe -Wall -W -O2 -fomit-frame-pointer -pipe -march=i586
-mcpu=pentiumpro  -DQT_NO_DEBUG -I/usr/lib/qt3//mkspecs/default -I. -I.
-I/usr/lib/qt3//include -o moc_form1.o moc_form1.cpp
g++  -o test main.o form1.o moc_form1.o  -L/usr/lib/qt3//lib
-L/usr/X11R6/lib -lqt -lXext -lX11 -lm
/usr//bin/ld: cannot find -lqt
collect2: ld returned 1 exit status
make: *** [test] Error 1


 /usr//bin/ld: cannot find -lqt
Come leggi, significa che ld (il linker, quello che prende tutti i vari
file oggetto e li collega, assieme ad alcune librerie, per creare il
tuo bell'eseguibile) non trova la libreria qt. -lqt significa collega
questo programma alla libreria libqt.so. Probabilmente non viene
trovata in quanto, da molto tempo, viene usato un'altro nome:
libqt-mt.so. Quell'-mt sta a significare multi threading, in quanto
vecchie versioni delle QT potevano essere usate in modalità single
threading o multi. Oggi vengono solo usate in modalità multi threading,
ma nonostante ciò alcuni programmi (e qmake) continuano a cercare
libqt.so.
La soluzione più rapida è:
su
cd $QTDIR
ln -s libqt-mt.so libqt.so
ldconfig
Ovvero: diventi root, crei un link simbolico, di nome libqt.so, a
libqt-mt.so (in pratica un altro nome per lo stesso file), e lanci
ldconfig per far sì che il loader dei programmi (quello che li avvia)
trovi la "nuova" libreria libqt.so.
Ora make dovrebbe finalmente andare.
PS: non c'è bisogno di lanciare ogni volta qmake, basta rilanciarlo solo
ogni volta che aggiungi e togli file dal progetto. make, invece, devi
rilanciarlo ad ogni compilazione.


 make: *** [test] Error 1
E' perchè non trova la lib delle qt.
Controlla dove hai messo la libqt.so
Io avevo installato un pacchetto con le qt3 embended e voleva l'opzione
-lqte al posto della -lqt


Ri-Grazie!