Вы не должны определять глобальные переменные в заголовках, вам нужно сообщить компилятору, что он определен в другом месте с ключевым словом extern
.В противном случае компилятор пытается определить переменную в каждом исходном файле, который содержит заголовок.
Например.в MyNameSpace.h вы делаете:
namespace NameSpace1 {
extern std::string first;
}
Затем вы делаете это в MyNameSpace.cpp:
namespace NameSpace1 {
std::string first = "First";
}