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

XBo*_*oom 5 c++

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

LNK2001 未解析的外部符号 "public: static int HooksXD::night" (?night@HooksXD@@2HA)

标题是这样的:

class HooksXD
{
    public:
        static void XD3();
        static int night;
        static int night2;
};
Run Code Online (Sandbox Code Playgroud)

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

.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++;
    }
}
Run Code Online (Sandbox Code Playgroud)

Som*_*ken 5

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

在您的 cpp 文件中:

int HooksXD::night = 0;
int HooksXD::night2 = 0;
Run Code Online (Sandbox Code Playgroud)

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