C ++: referência indefinida a instância na classe Singleton

Atualmente, estou tentando implementar uma fábrica como um singleton. Eu praticamente usei o exemplo de livro didático do padrão Singleton. Aqui está o arquivo .h:

namespace oxygen{

class ImpFactory{

public:
    static boost::shared_ptr<ImpFactory> GetInstance();

private:
    static boost::shared_ptr<ImpFactory> mInstance;
};

e aqui está o arquivo .cpp:

#include "impfactory.h"

using namespace oxygen;
using namespace boost;

shared_ptr<ImpFactory> ImpFactory::GetInstance(){
    if (mInstance.get() == 0)
        mInstance = shared_ptr<ImpFactory>(new ImpFactory());
    return mInstance;
}

O código é compilado, mas recebo um erro de vinculador:

../../lib/oxygen/liboxygen.so.3.2.4: referência indefinida a `oxygen :: ImpFactory :: mInstance '

Atualmente, este grupo tem três alunos perplexos. Alguma ideia?

questionAnswers(5)

yourAnswerToTheQuestion