【发布时间】:2024-01-05 04:00:01
【问题描述】:
考虑关注MRE:
class Segment
{
public:
void update();
};
class Singleton
{
Singleton();
public:
static Singleton& get_instance();
void complete();
};
void Segment::update()
{
Singleton::get_instance().complete();
}
Singleton& Singleton::get_instance()
{
static Singleton instance;
return instance;
}
void Singleton::complete()
{}
int main()
{
return 0;
}
当我在 VS2019 中的标准 Debug 配置下编译代码时,我收到一个关于 unresolved external for function get_instance() 的链接器错误。
完整的错误描述
LNK1120 1 unresolved externals
LNK2019 unresolved external symbol
"private: __cdecl Singleton::Singleton(void)"
(??0Singleton@@AEAA@XZ) referenced in function
"public: static class Singleton & __cdecl Singleton::get_instance(void)"
(?get_instance@Singleton@@SAAEAV1@XZ)
我先声明了类,然后我实现了所有的方法,有什么问题?
【问题讨论】:
-
`Singleton::Singleton()` 的定义在哪里?看起来你漏掉了。
-
"我收到关于函数
get_instance()的未解析外部的链接器错误" 不,您会收到有关"private: __cdecl Singleton::Singleton(void)"的错误 referenced in @987654327 @.
标签: c++ singleton unresolved-external