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?