Errori che non riesco a capire di una lista su gcc.

di Anonimizzato13124 il
8 risposte
Sempre problemi che non riesco a trovare su questo programma (lista completa con delle funzioni).

Sul terminator mi segnala i seguenti errori che io non riesco a trovare. Spero ci sia qualcuno che mi aiuti . grazie in anticipo
xubuntu@xubuntu:~/Desktop$ cd /home/xubuntu/Desktop
xubuntu@xubuntu:~/Desktop$ gcc lista.c -o lista -lm
lista.c:21:12: error: conflicting types for ‘getline’
int getline(char buffer_line[],int);
^
In file included from lista.c:2:0:
/usr/include/stdio.h:678:20: note: previous declaration of ‘getline’ was here
extern _IO_ssize_t getline (char **__restrict __lineptr,
^
lista.c:269:5: error: conflicting types for ‘getline’
int getline(char buffer_line[],int Max_l)
^
In file included from lista.c:2:0:
/usr/include/stdio.h:678:20: note: previous declaration of ‘getline’ was here
extern _IO_ssize_t getline (char **__restrict __lineptr,
^
xubuntu@xubuntu:~/Desktop$ ./lista
bash: ./lista: No such file or directory

8 Risposte

  • Rinomina la getline con un altro nome perché esiste già nella libreria standard del C ( ad esempio mygetline), comunque dovresti incominciare a leggere gli output del terminale ed interpretare gli errori ( "previous declaration of ‘getline’ was here" è abbastanza eloquente ).
    Una cosa, quando compili devi usare il -lm solo quando utilizzi la libreria math.h o qualsiasi altra libreria da linkare, quindi in questo caso non ti serve.
    Tra l'altro visti tutti gli errori non ha senso provare ad eseguire il programma con ./lista in quanto non è stato compilato!
  • "Una cosa, quando compili devi usare il -lm solo quando utilizzi la libreria math.h o qualsiasi altra libreria da linkare, quindi in questo caso non ti serve."

    Cosa intendo con qualsiasi altra libreria da linkare??
  • Ok grazie mille!!! Sei stato di grande aiuto!
  • Dando un occhiata ai link che mi avete gentilmente postato , non riesco a capirli molto bene.

    Riassumendo sul fatto di mettere o meno -lm alla fine , (light mi hai detto che lo devo mettere solo quando richiamo la libreria math.)
    Oltre a quella io nei miei programmi utilizzo solamente la stdio, stdlib, time, string.

    Adesso la mia domanda è , quando ho queste librerie nel codice devo richiamarle nel terminale attraverso delle formule , stile -lm ?
    Mi sembra di capire di no . Giusto?
  • .
  • Hai letto la risposta su stackoverflow?
    Perché io non saprei spiegarlo meglio di così...
Devi accedere o registrarti per scrivere nel forum
8 risposte