Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322

    [c] undefined reference to new_list

    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??

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    che mi sia dimenticato di mettere nel gcc anche il list.c??

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    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??

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    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.


  6. #6

    aiutooooooo

    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

    qualche suggerimento ?

    Grazie,

    C.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    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
    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 per ulteriori norme comportamentali da seguire.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.