[Lugge] Re: Compilando in C

  • From: Matteo Ianeselli <ianezz@xxxxxxxxxx>
  • To: lugge@xxxxxxxxxxxxx
  • Date: Tue, 21 Aug 2001 09:59:09 +0200

Massimo Arnaudo, in un'altra vita, ha scritto:

 > masarn1@gull:~/IB/examples > cc -Wall api1.c
                                ^^^^^^^^^^^^^^^

 > cosa vuol dire undefined reference? Dove sarebbe l' errore?

In breve: 

Devi linkarti anche la libreria che contiene l'implementazione di
quelle funzioni. 

Se la libreria si chiama ``libPippo.a'' e si trova nella directory
/pinco/pallo, usi semplicemente le opzioni -L/pinco/pallo -lPippo
(/lib e /usr/lib sono gia` esaminate per default).


Meno in breve:

Vuol dire che nel tuo file .c stai invocando funzioni (a occhio
dell'interfaccia applicativa di qualche RDBMS, PostgreSQL o mi
sbaglio?) che pero` non sono definite da nessuna parte (ma sono
dichiarate nei .h che ti includi). 

Quando il linker cerca di mettere insieme un eseguibile, trova che usi
delle funzioni di cui non c'e` un'implementazione disponibile (perche`
quasi sicuramente se ne stanno in una libreria a parte), per cui si
accorge che mancano dei pezzi e (giustamente) spara fuori "undefined
reference".

In altre parole, ti devi tirar su anche l'implementazione di quelle
funzioni, ovvero specificando una (o piu`) librerie. 

La situazione e` simile a quando usi funzioni matematiche in virgola
mobile (i.e. sin()), e allora e` necessario linkare anche la libreria
matematica con ``-lm''.

-- 
UNIX diapers by Pannolini USPTO 2039887  http://www.uspto.gov
Matteo Ianeselli      ianezz AT sodalia.it  (+39) 0461 316452
Visita il LinuxTrent:            http://www.linuxtrent.it
<========----------
 Prima di scrivere in m-list per favore leggi il regolamento
 http://lugge.ziobudda.net/benvenuto.html



Other related posts: