Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    112

    [C][VSC] Errore nello studio di programmi su più file in linux

    Ciao, i programmi diventano sempre più lunghi e volevo dividerli in più file per chiarezza, ho seguito una guida in internet ma compilando il file con il main riscontro i seguenti errori:
    __________________________________________________ ____________________________________
    Avvio della compilazione...
    /usr/bin/gcc -fdiagnostics-color=always -g '/home/drinu/Desktop/studio per progetto c-canc/progetto.c' -o '/home/drinu/Desktop/studio per progetto c-canc/progetto'
    /usr/bin/ld: /tmp/ccVimCtt.o: in function `main':
    /home/drinu/Desktop/studio per progetto c-canc/progetto.c:14: undefined reference to `funzione'
    collect2: error: ld returned 1 exit status


    La compilazione è terminata con errore/i.


    * Il processo del terminale è stato terminato. Codice di uscita: -1.
    * Terminale verrà riutilizzato dalle attività, premere un tasto qualsiasi per chiuderlo.
    __________________________________________________ ____________________________________
    Sembra che non riesca a trovare la funzione che si trova nel file funzione.c.
    Cosi quando compilo il file funzione.c non riesce a trovare la funzione main.
    Sembra che i due file non si vedano...

    Vi posto il progettino di esempio:
    file progetto.c :
    codice:
    #include<stdio.h>
    #include"funzione.h"
    
    int main(){
        int primo_num;
        int secondo_num;
        int ris;
        printf("primo numero? ");
        scanf("%d", &primo_num);
        fflush(stdin);
        printf("\nsecondo numero? ");
        scanf("%d", &secondo_num);
        fflush(stdin);
        ris = funzione(primo_num, secondo_num);
        printf("%s%d", "Risultato: ", ris);
    }
    
    File funzione.c :

    codice:
    #include"funzione.h"
    
    int funzione(int p, int s){
    int r;
    
    if (p > 0 && s > 0)
        r = p + s;
    else
        r = p * s;
    return r;
    }
    
    E il file header funzione.h :

    codice:
    int funzione(int, int);
    I file si trovano tutti nella stessa cartella aperta poi in vsc.
    Come risolvo? Grazie!
    Ultima modifica di drinu; 16-05-2024 a 15:55

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    112
    Ho provato sia in windows che linux, stesso errore!
    Ultima modifica di drinu; 16-05-2024 a 15:59

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Come hai fatto con Windows?

    Hai creato un nuovo Progetto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    112
    Ho semplicemente aperto una nuova cartella con dentro i tutti i file. Uguale a linux!
    Ora che ricordo mi ha chiesto se voglio creare il progetto e ho risposto si!
    Ultima modifica di drinu; 16-05-2024 a 17:54

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Che progetto hai creato?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    112
    Però io non vedo traccia di questo progetto in windows. Ho scoperto che si può compilare da terminale ma che si può configurare il file tasks.json in modo che risulti automatico. Ora mi compila tutti i file .c presenti nella cartella del "progetto" in un file exe funzionante. Ho notato anche che ci sono altri file json... a cosa servono?

    Ps:Grazie oregon per avermi spronato a usare il cervellino...!!!

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.