Funzioni Goniometriche in C
Salve a tutti, sono ai primi passi con un corso di programmazione scientifica in C. In questo codice per la risoluzione di un problema sul moto parabolico c'è qualcosa che non quadra con le funzioni seno e coseno, perchè il terminale mi da questo errore:
Grazie in anticipo
/tmp/ccyQ8o80.o: In function `main': para.c:(.text+0x7d): undefined reference to `cos' para.c:(.text+0x93): undefined reference to `sin' collect2: ld returned 1 exit status
Grazie in anticipo

#include <stdio.h> #include <math.h> #define G 9,82 /* Questo programma calcola le coordinate x, y di un peso lanciato ad un angolo theta con l'asse x, e v iniziale v0. Tutte le grandezze sono nel sistema SI */ main () { double t = 0; /* tempo */ double theta; /* angolo di lancio */ double v0, v0x, v0y; /* v iniziale */ double xt, yt, vx, vy; printf (" Inserisci l'angolo di lancio in radianti: "); scanf ("%lf", &theta); printf ("\n Inserisci la velocità iniziale in m/s "); scanf ("%lf", &v0); printf ("\n Inserisci il valore del tempo in s "); scanf ("%lf", &t); /* Calcola il valore di v */ v0x = v0 * cos(theta); v0y = v0 * sin(theta); vx = v0x; vy = v0y - G * t; /* Calcola il valore delle coordinate */ xt = vx * t; yt = v0y * t - 0,5 * G * pow(t, 2.0) ; printf ("\n Le coordinate al tempo %lf sono x = %lf, y = %lf \n", t, xt, yt); }
Risposte
È un errore del linker, non del compilatore. GCC non aggiunge automaticamente la libreria matematica, devi dirglielo esplicitamente. Aggiungi l'opzione "-lm" quando chiami gcc.
gcc -std=c99 -pedantic source.cpp -lm ...
Riuscito a risolvere, grazie mille
