Qt LNK2019:无法解析的外部符号

编译的时候,出现这样的情况,如图:
(moc_widget.obj error: LNK2019: 无法解析的外部符号 “private: void __cdecl Widget::on_pushButton_3_clicked(void)” (?on_pushButton_3_clicked@Widget@@AEAAXXZ),该符号在函数 “private: static void __cdecl Widget::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)” (?qt_static_metacall@Widget@@CAXPEAVQObject@@W4Call@QMetaObject@@HPEAPEAX@Z) 中被引用)
在这里插入图片描述
这个问题大概率是你的槽函数的声明和实现没有匹配上,可以先:

1.进入文件夹,删除类似这样的文件夹.重新进行编译.

在这里插入图片描述

2.项目上面右击,清除,执行Qmake,构建.再来.
3.这是我这次遇到的情况,我之前直接通过按钮右击,转到槽,准备写槽函数,但是发现我的按钮没有命名(默认pushButton),然后我就直接删掉槽函数的实现部分,但是忘掉即使是通过转到槽这样的方式来写槽函数,在头文件中也会生成相应的声明,这时候去头文件把之前的那个声明删除就可以了.

图中:我只删除了实现,没有删除声明.
Qt LNK2019:无法解析的外部符号_第1张图片

牢记:槽函数的声明和实现要同生死共存亡.

你可能感兴趣的:(C++)