无法解析的外部符号: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的作用:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM