Compilare FILE con piu sorgenti

di il
8 risposte

Compilare FILE con piu sorgenti

Ragazzi buonasera,

vi chiedo come si fa su ECLIPSE o DEV C++ a compilare solo il main.c di un progetto in cui ho diversi file sorgenti (.h e .c).

8 Risposte

  • Re: Compilare FILE con piu sorgenti

    Perché solo il main? Devi creare un progetto, aggiungere tutti i file e compilare tutti i sorgenti, poi il linker metterà tutto insieme
  • Re: Compilare FILE con piu sorgenti

    Ho letto su alcune discussioni di compilare solo il main per quello
  • Re: Compilare FILE con piu sorgenti

    Stai facendo molta confusione.

    Se hai più file .c devi compilarli tutti e il linker metterà insieme tutti i file compilati per ottenere un exe.

    Se parte dei file .c li hai già compilati e hai ottenuto dei file di libreria .lib o .dll (dipende), allora puoi compilare solo il file che richiama le librerie e indicare al l'intervento.

    Ma tutto ciò lo devi studiare sui libri e per la tua preparazione attuale è prematuro.
  • Re: Compilare FILE con piu sorgenti

    Ho cercato sul Deitel ma non si entra nel dettaglio purtroppo
  • Re: Compilare FILE con piu sorgenti

    Cerca testi sulla programmazione modulare

    https://www.yumpu.com/it/document/read/39878051/programmazione-modulare-in-c

    ma fossi in te non farei il passo più lungo della gamba
  • Re: Compilare FILE con piu sorgenti

    Ho sistemato nel seguente modo al momento:

    MAIN.C : //richia
    #define BUFFER_SIZE 1024
    
    //Librerie generali
    #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include <ctype.h>
    #include <windows.h>
    
    #include "utenti.h"
    #include "util.h"
    
    int main(){
    	
    	titolo();
        
        int scelta;
        utente *testa_Utente = NULL;
        
        //Lettura utenti dal file
        FILE *fpU;
        fpU = fopen("utenti.csv", "r");
        
        testa_Utente = lettura_Utenti(fpU);
    	
    	 do {
            
            printf("\t \t \t 1. Login \n \n");
            printf("\t \t \t 2. Registrazione \n \n");
            printf("\t \t \t 3. Esci \n \n");
            printf("\t \t \t \t Scelta : ");
            scanf("%d", scelta);
            
            //Ripulisco la schermata
            clear_Console();
            titolo();
            
            switch (scelta) {
            	             
    			/* REGISTRAZIONE Utente */   
                case 2:
                	printf("Benvenuto! \n Crea il tuo account \n");
                    registrazione_utente(testa_Utente);
                    clear_Console();
                    titolo();
                    break;
                    
                default:
                    clear_Console();
                    titolo();
                    break;
            }
            printf("-----------------------------\n");
            
        } while (scelta != 0);
        
        printf("\n");
        return 0;
    UTENTI.H
    
    //Definizione struct UTENTE	
    typedef struct utente utente;
    
    void registrazione_utente (utente *testa);
    
    int lettura_UltimoID(utente *testa_utente);
    
    utente *lettura_Utenti(FILE *fp);
    
    
    UTENTI.C
    
    #define Char_size 20
    struct utente {
        int id;
        char nome[Char_size];
        char cognome[Char_size];
        char nick[Char_size];
        char password[Char_size];
        int permessi; // livello 1 = utente normale; livello 2 = admin (ha accesso a tutto);
        struct utente *next_Utente; //puntatore al prossimo nodo
    };
     /*
     * Funzione: registrazione_utente
     * ----------------------------
     *   Permette la registrazione di un nuovo utente, con salvatggio dei dati sul file "utenti.csv" nella struct utente
     *
     *   @param testa : puntatore all'inizio lista utenti, una lista contenente tutte gli utenti caricati dal file "utenti.csv"
     */
     void registrazione_utente (utente *testa) {
        
    	// Puntatori a variabili tipo utente : Salvataggio in TESTA alla lista
    	utente *nuovo_Nodo = NULL;
        utente *temp;
        utente *curr, *prec;
        prec = NULL;
        curr = testa;
    
        nuovo_Nodo = (utente *)malloc(sizeof(utente));
    	....
    
    ma ho sempre il seguente errore su UTENTI.C alla riga della definizione della funzione registrazione_utente:
    [Error] unknown type name 'utente'
  • Re: Compilare FILE con piu sorgenti

    Devi includere utenti.h anche nel modulo utenti.c, perché il tipo utente l'hai definito lì.
    È buona prassi anche mettere le header guard negli header

    https://it.m.wikipedia.org/wiki/Include_guar
  • Re: Compilare FILE con piu sorgenti

    Ottimo funziona grazie mille ad entrambi, siete stati davvero d aiuto.
Devi accedere o registrarti per scrivere nel forum
8 risposte