Referencia no definida a un miembro estático

Estoy usando un comstackdor cruzado. Mi código es:

class WindowsTimer{ public: WindowsTimer(){ _frequency.QuadPart = 0ull; } private: static LARGE_INTEGER _frequency; }; 

Obtuve el siguiente error:

referencia indefinida a `WindowsTimer :: _ frecuencia ‘

También traté de cambiarlo a

 LARGE_INTEGER _frequency.QuadPart = 0ull; 

o

 static LARGE_INTEGER _frequency.QuadPart = 0ull; 

pero sigo recibiendo errores

alguien sabe por qué?

    Necesita definir _frequency en el archivo .cpp.

    es decir

     LARGE_INTEGER WindowsTimer::_frequency; 

    Linker no sabe dónde asignar datos para _frequency y tiene que decirlo manualmente. Puede lograr esto simplemente agregando esta línea: LARGE_INTEGER WindowsTimer::_frequency = 0; en una de tus fonts de C ++.

    Explicación más detallada aquí

    Si hay una variable estática declarada dentro de la clase, entonces debe definirla en el archivo cpp como este

     LARGE_INTEGER WindowsTimer::_frequency = 0;