以下代码
class Processor
{
...
signals:
void sig_process();
virtual void process(void);
void loadparam(Param ¶);
bool loadparam(const char* path);
...
}
编译报错
error LNK2005: "public: bool __cdecl Processor::loadparam(char const *)" (?
loadparam@Processor@@QEAA_NPEBD@Z) 已经在 moc_Processor.obj 中定义
D:\Processor\Processor.obj Processor
原因:粗心大意,后三个函数是共有方法,不是signals,要不放在signals前声明,要不在前面加 public
class Processor
{
...
signals:
void sig_process();
public:
virtual void process(void);
void loadparam(Param ¶);
bool loadparam(const char* path);
...
}