找到Qt的一个或多个多重定义符号

时间:2013-01-29 16:23:59

标签: c++ qt

我收到了这个错误,我根本没有得到。我把它解释为我有不止一次定义的东西,但当我查看我的代码时,我只是看不到它。我上传了错误消息指向的代码:

 teamdata.obj:-1: error: LNK2005: "public: int __thiscall teamdata::getTeamnumber(void)" (?getTeamnumber@teamdata@@QAEHXZ) already defined in scouting.obj
 teamdata.obj:-1: error: LNK2005: "public: bool __thiscall teamdata::operator<(class teamdata)" (??Mteamdata@@QAE_NV0@@Z) already defined in scouting.obj
 release\Scouting.exe:-1: error: LNK1169: one or more multiply defined symbols found

链接: teamdata.h http://pastebin.com/5u0YzK84

teamdata.cpp http://pastebin.com/GP0zRzpw

2 个答案:

答案 0 :(得分:0)

正如链接器告诉您的那样,您的函数getTeamnumber()operator <两个不同的翻译单元中定义:{{1 (我想那是&#39;是文件的名称)和scouting.cpp

定义是相同还是不同无关紧要(函数模板是此规则的一个例外,但不是你的情况,因为你的函数不是tmeplates),只要它们是多个的。

一个定义规则(C ++标准的第3条)规定程序的每个实体只有一个定义。

答案 1 :(得分:0)

超出链接器正确的标准答案......

我不确定您的项目是否已配置或您的代码是如何布局的......所以请大家多加一点。

将那些方法的定义从类头文件移到类定义文件...