对静态成员的未定义引用
我正在使用交叉编译器。 我的代码是:
class WindowsTimer{ public: WindowsTimer(){ _frequency.QuadPart = 0ull; } private: static LARGE_INTEGER _frequency; };
我得到以下错误:
对“WindowsTimer :: _频率”的未定义引用
我也试图改变它
LARGE_INTEGER _frequency.QuadPart = 0ull;
要么
static LARGE_INTEGER _frequency.QuadPart = 0ull;
但我仍然收到错误。
有谁知道为什么?
您需要在.cpp文件中定义_frequency
。
即
LARGE_INTEGER WindowsTimer::_frequency;
链接器不知道在哪里为_frequency
分配数据,你必须手动告诉它。 你可以通过简单的添加下面的代码来实现: LARGE_INTEGER WindowsTimer::_frequency = 0;
到你的C ++源代码中
这里更详细的解释
如果在类中声明了一个静态variables,那么你应该像这样在cpp文件中定义它
LARGE_INTEGER WindowsTimer::_frequency = 0;