c++ - error - Referencia no definida a un miembro estático
reference to undefined c++ (3)
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 fuentes de C ++.
Explicación más detallada here
Estoy usando un compilador 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;
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;