Funzioni Goniometriche in C

Cubrick
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:
/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 :D

#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
claudio862
È 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 ...

Cubrick
Riuscito a risolvere, grazie mille :D

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.