PDA

View Full Version : QT


x110
15-07-2004, 13:08
cos'e' l'opzione -lqte passata al gcc

alle volte l'ho vista come -lqt
tanks..

ilsensine
15-07-2004, 13:25
-l è una direttiva per il linker, e indica di linkare al programma la libreria specificata. -lqte linka a libqte.so; -lqt linka a libqt.so

x110
15-07-2004, 14:02
ok e se il compilatore(linker) mi dice: ld: cannot find -lqte?
puo'essere colpa di un path?
dove guarda il linker? in LD_LIBRARY_PATH? o LIBRARY_PATH?

comunque queste due variabili puntano ad una dir che contiene
libqte.so.2 collegamento a---(qualcosa che comunque esiste)
libqte.so.2.3 collegamento a---(qualcosa che comunque esiste)
libqte.so.2.3.2 collegamento a---(qualcosa che comunque esiste)

libqpe.so.1
libqpe.so.1.5
libqpe.so.1.5.0

dovrebbe trovarlo no.


Come fa a decidere il linker quale e' la libreria da usare?
cioe' perche' la 2.3.2 invece della 2?


ciao e grazie.

ilsensine
15-07-2004, 14:30
Non porti domande troppo difficili.

Per dire al linker dove trovare una libreria, se la libreria è in un percorso non-standard (come le Qt), devi usare la direttiva -L; ad es.
-L /usr/lib/qt3/lib/

nb man gcc ;)

x110
15-07-2004, 14:42
ok sto usando le qt su uno zaurus che e' un palmare nativo linux
della sharp piattaforma arm.

sto cercando di compilare un programmino dal palmare stesso.
usando tmake mi viene generato un Makefile che in effetti cerca di linkare dei file oggetto con:
gcc -o hello hello.o main.o moc_hello.o -L/home/Qtpalmtop/lib -lqte -lqpe

ed e' li che ld mi dice:
cannot find -lqte.

perche' che invece
libqte c'e'?

forse chiedo troppe cose, ma con il man non riesco ad avere una visione d'insieme
mentre sul forum alle volte si capisce bene.

ilsensine
15-07-2004, 14:46
Ah compilazione incrociata, quindi non puoi usare la ld cache.

Crea il link linqte.so -> libqte.so.2

nb quello script è buggato: quando linki oggetti c++, devi usare il g++ non il gcc. Se ti da dei unresolved symbols su funzioni c++, sai come procedere.

x110
16-07-2004, 10:25
cosa intendi per compilazione incrociata.... cross?
non la dovrebbe essere perche' compilo direttamente dall'arm.

comunque cio' che mancava era propio il link alla qte con nome .so
c'erano tante .so.2 .so.2.3.2