无法解析的外部符号:qt_metacall metaObject(void) const qt_metacast

背景:在原有的项目上添加新的类,添加Q_OBJECT后报错。

问题原因:VS在第一次编译后,之后就不会再调用MOC命令。也就是再添加的类中有信号与槽机制时(加Q_OBJECT),是不会调用MOC,将新的类转化为标准C++兼容形式,就会报错。

解决方法:

1.找到当前用的Qt版本,进入到moc.exe所在文件夹下面。cmd到当前目录

2.按照下图格式将头文件转化为moc文件

 3.将生成的moc_XX.cpp文件放到GeneratedFiles\Debug的目录下。再在VS界面中添加moc文件。

4.重新编译运行。

 

附:moc的作用:

 

posted @ 2020-07-09 11:08  newer92  阅读(4394)  评论(1编辑  收藏  举报