未解决的外部符号错误是什么意思?

时间:2012-03-12 18:33:32

标签: c++ visual-studio

我正在使用C ++编写一个简单的“房屋出价”应用程序。我编译并得到此错误消息:

1>Hus.obj : error LNK2019: unresolved external symbol "public: __thiscall 
Bud::Bud(void)" (??0Bud@@QAE@XZ) referenced in function "public: __thiscall 
Hus::Hus(int,class Person,class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> >)" 
(??0Hus@@QAE@HVPerson@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>F:\c++\prosjekter\Øving 4\Ov4Oppg1\Debug\Ov4Oppg1.exe : fatal error LNK1120: 1 
unresolved externals

任何人都有线索?

2 个答案:

答案 0 :(得分:2)

您收到错误是因为您尚未实施

Bud::Bud()

您从Hus::Hus()拨打电话。

你很可能有类似的东西:

class Bud
{
public:
   Bud();
}

并忘了实现构造函数。你需要添加

Bud::Bud() 
{
   //whatever
}

到实现文件,编译并链接到生成的obj文件。

答案 1 :(得分:1)

我遇到了一个简单错误导致的同样错误:我忘了在cpp文件中实现我的一个函数。 当其他类的对象称为我忘记实现的这个类的一个对象时,出现了这个错误。 我认为错误看起来像是“链接错误”,因为我的函数返回了我项目的其他文件中定义的类型。

Noobie错误......但它对某人有用......