Tengo un código repartido en tres archivos y me gustaría usar un cuarto archivo "gloabls" para almacenar algunas constantes físicas como el valor de pi. Esto evitaría las definiciones repetitivas de pi = 4*atan(1.0)
. Después de hurgar, lo que he intentado es crear un archivo global de cabecera:C++ Variables globales en varios archivos
/*globals.h*/
extern double g_pi;
y un archivo CPP mundial:
/*globals.cpp*/
#include "math.h"
#include "globals.h"
double g_pi = 4*atan(1.0);
Entonces incluir estos archivos en mis archivos principales:
/*mainFile.cpp*/
//Include math and other libraries
#include globals.h"
int main() {
/*
....
*/
double x = 2*g_pi
/*
....
*/
}
Esto me da un error de referencia indefinido para g_pi. Estoy usando un compilador g ++ en Ubuntu. ¡Con suerte es una solución simple! Tus sugerencias son muy apreciadas. Si se necesitan más detalles, estaré encantado de proporcionarlos.
El problema puede residir en la forma en que construye el ejecutable, por lo que debe agregar lo que sea que use para hacerlo a su pregunta (Makefile, g ++ command line ...). – alexisdm
¿Puede incluir el comando exacto que ejecuta para compilar? Y el mensaje de error exacto? – JaredC