PDA

Visualizza la versione completa : [C] Errore "Undefined reference"


jacopos81
27-04-2007, 18:10
non riesco a capire perche il complilatore mi da questo errore: UNDEFINED REFERENCE TO NEW_LIST

la situazione questa: ho un file list.c (e il suo header list.h ) nel quale definita la funzione new_list che crea una nuova lista vuota.
inoltre ho un file node.c (e node.h) nel quale devo usare la funzione new_list. Nell'header file node.h ho incluso l'header list.h quindi dovrei avere a disposizione la funzione new_list anche in node.c, no???

eppure visto il tipo di errore, sembra che non la trova..dove sbaglio?? :confused:

shodan
27-04-2007, 18:19
Mi pare che non sia la prima volta che tu abbia questi problemi.
Il file .c nella lista dei moduli da compilare e linkare? Altrimenti il linker se non lo trova si inbufalisce parecchio dandoti quell'errore.
Includere i .h e basta non serve a nulla se la definizione delle funzioni nei .c

jacopos81
27-04-2007, 18:29
che mi sia dimenticato di mettere nel gcc anche il list.c??

jacopos81
27-04-2007, 19:07
per, scusa l'ignoranza, ma quando io includo un file .h con tutti i prototipi delle funzioni del rispettivo .c, mi dovrebbe includere anche tutte le sue funzioni, senza bisogno che io faccio gcc node.c list.c


sbaglio??

shodan
27-04-2007, 19:16
Si.
Includere un file .h e basta non dice nulla al linker, infatti nei .h ci sono solo le dichiarazioni delle funzioni e non il codice vero e proprio, quindi il linker non sa che pesci pigliare per creare l'eseguibile.

Ricorda che E' obbligatorio mettere tutti i .c che si devono compilare e linkare per creare l'eseguibile. Se poi il file .c gi stato compilato senza modifiche, il compilatore salta la compilazione di quel modulo e il linker usa direttamente il file object, tutto questo per velocizzare i tempi di compilazione.

:ciauz:

CarmeloD1981
29-04-2007, 13:03
Ciao,

ho un problema di compilazione ... nonostante il programma abbia sintassi corretta e la libreria sia installata correttamente, non riesco a compilare con successo il mio programma, perch gcc mi d l'errore "undefined reference" ... ho provato a linkare la libreria in vari modi, ma niente da fare :dh:

qualche suggerimento ?

Grazie,

C.

alka
29-04-2007, 14:42
Originariamente inviato da CarmeloD1981
ho un problema di compilazione ... nonostante il programma abbia sintassi corretta e la libreria sia installata correttamente, non riesco a compilare con successo il mio programma, perch gcc mi d l'errore "undefined reference" ... ho provato a linkare la libreria in vari modi, ma niente da fare :dh:

Non intervenire in discussioni altrui per chiedere la risoluzione ad un tuo problema.

Fai una ricerca e se non trovi informazioni in grado di soddisfare il tuo problema specifico, apri una discussione indicando quanto il tuo caso diverso, e quali sono le informazioni che ti mancano.

Fai riferimento al Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887) per ulteriori norme comportamentali da seguire.

Ciao! :ciauz:

Loading