Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [C] Header file e undefined reference

    Allora sto scrivendo delle funzioni in C per un progetto che ho da fare.
    Il tutto è composto da 3 file: main.c stdinmio.c e stdinmio.h. Nei due file .c è incluso il file .h
    Ecco il codice:
    codice:
    /*File: main.c*/
    #include <stdio.h>
    #include <stdlib.h>
    #include "stdinmio.h"
    
    int main(int argc, char *argv[])
    {
        char buf[MAX_USER_LEN];
        memset(buf, '\0', MAX_USER_LEN);
        readStdIn(buf);
    }
    codice:
    /* File: stdinmio.h */
    #ifndef HEADER
    #define HEADER
    
    #define MAX_USER_LEN 16
    void readStdIn(char *buffer);
    
    #endif
    codice:
    /* File: stdinmio.c*/
    #include "stdinmio.h"
    void readStdIn(char *buffer)
    {
         // ... codice ...
    }
    A rigor di logica mi pare corretto, ma il compilatore mi dice:
    [Linker Error] undefined reference to `readStdIn'
    Idee???
    PS: sto usando wxDev-C++

  2. #2
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Se nel file main.c includi stdinmio.h non fai altro che includere la dichiarazione della funzione readStdIn ma non la definizione che invece si trova nel file stdinmio.c.

    Nel file main.c devi includere stdinmio.c al posto di stdinmio.h.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Originariamente inviato da sotoli
    Se nel file main.c includi stdinmio.h non fai altro che includere la dichiarazione della funzione readStdIn ma non la definizione che invece si trova nel file stdinmio.c.

    Nel file main.c devi includere stdinmio.c al posto di stdinmio.h.
    Sì, infatti così non mi dà problemi. Stilisticamente parlando però non ho mai visto includere file .c in progetti degni di tale nome :|

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    No ... non si includono i file .c ...

    Semmai, indica al tuo compilatore (tramite un progetto o un make file) che hai due file sorgenti .c da compilare e linkare.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Originariamente inviato da oregon
    No ... non si includono i file .c ...

    Semmai, indica al tuo compilatore (tramite un progetto o un make file) che hai due file sorgenti .c da compilare e linkare.
    ecco appunto...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.