Глобальные переменные c++ в нескольких файлах

У меня есть некоторый код, распределенный по трем файлам, и я хотел бы использовать четвертый файл "gloabls" для хранения некоторых физических констант, таких как значение pi. Это позволит избежать повторяющихся определений pi = 4*atan(1.0). Поковырявшись, я попытался создать глобальный заголовочный файл:

/*globals.h*/
extern double g_pi;

и глобальный файл cpp:

/*globals.cpp*/
#include "math.h"
#include "globals.h"
double g_pi = 4*atan(1.0);

. Затем я включаю эти файлы в свои основные файлы:

/*mainFile.cpp*/
//Include math and other libraries 
#include globals.h"
int main() {
/*
....
*/
double x = 2*g_pi
/*
....
*/
}

Это дает мне ошибку неопределенной ссылки на g_pi. . Я использую компилятор g++ в Ubuntu. Надеюсь, это простое решение! Ваши предложения очень ценятся. Если необходимы дополнительные подробности, я буду рад предоставить их.

12
задан fenkerbb 8 May 2013 в 22:08
поделиться