Вы должны поместить определение этого статического поля в * .cpp файл, как там
class Singleton{
public:
static Singleton* getSingleton(){
if(instance == NULL){
mutex_.lock();
if(instance == NULL){
instance = new Singleton();
}
mutex_.unlock();
}
return instance;
}
private:
Singleton(){}
Singleton& operator =(const Singleton& ){}
static Singleton *instance;
static mutex mutex_;
};
mutex Singleton::mutex_;
Singleton * Singleton::instance;
Вы можете удалить мьютекс, если используете singleton myers и c ++ 11:
class Singleton {
public:
static Singleton& Instance() {
static Singleton S;
return S;
}
private:
Singleton();
~Singleton();
};