C ++未解析的外部符号(public static int)

时间:2017-06-06 08:44:29

标签: c++

当我尝试编译它时,我收到此链接器错误:

LNK2001 unresolved external symbol "public: static int HooksXD::night" (?night@HooksXD@@2HA)

标题是:

class HooksXD
{
    public:
        static void XD3();
        static int night;
        static int night2;
};

变量是公开的而不是私有的,因为我需要从不属于同一类的其他空位中访问它们。

cpp文件:

HooksXD lmao;
void HooksXD::XD3()
{
    //this void will be called from other cpp files
    lmao.night = 1;
    lmao.night2 = 1;
};

bool __stdcall CreateMoveClient_Hooked(float frametime, CUserCmd* pCmd)
{
    if (lmao.night = 1)
    {
        //some code
        lmao.night++;
    }
}

1 个答案:

答案 0 :(得分:2)

您只声明了nightnight2,他们仍然需要定义。 (因为他们是static

在你的cpp文件中:

int HooksXD::night = 0;
int HooksXD::night2 = 0;

然后访问一个不执行lmao.night,因为它是静态的,您应该通过类型名称HooksXD::night访问它。 确保你确实在这里需要static