Ваши меры условной компиляции "указывают", что в
каждом исходном файле, включающем file1.h, глобальная переменная gdVar будет объявлена один раз.
Обычно в подобных случаях поступают следующим образом:
1. file1.h:
Код:
#ifndef FILE1H
#define FILE1H
extern double gdVar;
#endif
2. В каком нибудь
одном .cpp-файле:
Код:
#include "file1.h"
...
double gdVar = 3;