Problema con switch - linguaggio c

di Anonimizzato14611 il
4 risposte
Il seguente codice compilato non da errori ma non genera l'eseguibile:
L'errore è il seguente:
gcc -Wall -o "c" "c.c" (nel direttorio: /home/antonio/programmi)
/tmp/ccuw64EH.o: nella funzione "main":
c.c:(.text+0x1b): riferimento non definito a "sqrt"
collect2: error: ld returned 1 exit status
Compilazione fallita.

Oregon mi ha detto che devo inserire lo switch,
Ma non mi ha detto come.

#include <stdio.h> /* printf */
#include <math.h> /* sqrt */

int main ()
{
double param, result;
param = 1024.0;
result = sqrt (param);
printf ("sqrt(%f) = %f\n", param, result );
return 0;
}

4 Risposte

  • Quando comipili con il gcc va aggiunto lo switch -lm
  • Ho compilato in questo modo:
    gcc -o c c.c
    /tmp/ccprUeUO.o: nella funzione "main":
    c.c:(.text+0x1b): riferimento non definito a "sqrt"
    collect2: error: ld returned 1 exit status

    Dopo ho compilato così:
    gcc -lm -o c c.c
    /tmp/cc8vCAM6.o: nella funzione "main":
    c.c:(.text+0x1b): riferimento non definito a "sqrt"
    collect2: error: ld returned 1 exit status

    Non cambia nulla.
  • Aggiungilo alla fine

    gcc -o c c.c -lm
  • Dire grazie non basta! Ma grazie davvero.
    Ora funziona.
    Io avevo pure reinstallato linux mint, per poi reinstallare tutto, pensando di aver fatto pasticci con il superutente.

    Grazie, ciao.
Devi accedere o registrarti per scrivere nel forum
4 risposte