無法解析的外部符號: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