Allora questo è il codice che vorrei fare come libreria statica:
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <cstring>
#define _USE_MATH_DEFINES
#include <cmath>
#include "GeometriaAnalitica.h"
using namespace std;
//Costanti
//const double PI_GRECO = 3.1415926535897932384626433832795028841971694;
//########################################################################################################################################################################
/********TRIGONOMETRIA********/
//Trasforma i gradi in radianti
extern double radianti(double gradi){
return gradi * (M_PI / 180.0);
}
//Trasforma i radianti in gradi
extern double gradi(double radianti){
return radianti * (180.0 / M_PI);
}
/*Restituisce in gradi compresi tra 0° e +/-360°, i valori superiori a 360° o inferiori a -360°.
Equivalente al pgm della Star O6016*/
extern double stabilizzaAngolo(double gradiAngolo){
//Variabili locali
double segno = 1.0;
if(gradiAngolo < 0)
segno = -segno;
gradiAngolo = radianti(fabs(gradiAngolo));//Trasforma i gradi in radianti
gradiAngolo = cos(gradiAngolo);//Coseno dell'angolo
gradiAngolo = acos(gradiAngolo);//Arcocoseno dell'angolo
return (gradi(gradiAngolo) * segno);//Restituisce i gradi compresi tra 0° e 360°
}
In code blocks quando provo a compilare questa libreria mi dà gli errori sugli include, tranne che sul header... Perchè?
E questo è l'header:
#ifndef GeometriaAnalitica_H_INCLUDED
#define GeometriaAnalitica_H_INCLUDED
//Costanti
//const double PI_GRECO = 3.1415926535897932384626433832795028841971694;
//Trigonometria
extern double radianti(double gradi);
extern double gradi(double radianti);
extern double stabilizzaAngolo(double gradiAngolo);
#endif // GeometriaAnalitica_H_INCLUDED
E questo è il codice del pgm main .cpp:
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <cstring>
#define _USE_MATH_DEFINES
#include <cmath>
#include "C:\Users\ASUS\Desktop\R-CAM\Lib\Prova\GeometriaAnalitica.h"
using namespace std;
int main()
{
double angolo = 52;
angolo = radianti(angolo);
cout << angolo << endl;
return 0;
}
Prima di compilare il pgm main.cpp faccio queste procedure:
-vado in Settings;
-scelgo la voce Compiler;
-qui in Linker settings metto il percorso del file della libreria con estensione .a;
-in Search directories metto il percorso del file header;
-infine includo tutto il percorso dell'header della libreria nel pgm main.
Quando compilo però mi dà il seguente errore: "undefined reference to 'radianti(double)' ".