背景:在原有的項目上添加新的類,添加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的作用: