未解析的外部符号

unresolved external symbol C++ Embedded

本文关键字:外部 符号      更新时间:2023-10-16

我已经在这个问题上被困了几天了,我找不到我的问题的答案,尽管谷歌充满了回答,但这似乎是一个相当抽象的问题。

下面是我在H中的代码:

struct DISPLAYLINE_t {
         char  *text;
         bool isWhite;
         void set(char *txt, bool iswhite){text = txt; isWhite = iswhite;};
};
struct DISPLAY {   
    static DISPLAYLINE_t line1,line2,line3,line4; 
    void clear(){//dostuff};
};

当我试图从Main访问时:

DISPLAY::line1.set(string, FALSE);

我得到以下错误:

错误LNK2019:未解析的外部符号"public: static struct DISPLAYLINE_t DISPLAY::line1" (?line1@DISPLAY@@2UDISPLAYLINE_t@@A)在函数WinMain中引用

任何想法?

必须在全局命名空间范围内为静态数据成员提供定义(至少对于那些您在代码中使用的数据成员):

DISPLAYLINE_t DISPLAY::line1;
DISPLAYLINE_t DISPLAY::line2;
DISPLAYLINE_t DISPLAY::line3;
DISPLAYLINE_t DISPLAY::line4;