天天看點

Qt添加類檔案編譯後,再添加宏Q_OBJECT問題簡述解決方法

問題簡述

建立項目的時候,已經添加了類檔案,前期認為不需要信号槽,就沒有添加宏Q_OBJECT,後面項目需要,又加入了宏Q_OBJECT,但是發現隻是添加了一個宏Q_OBJECT,除此之外沒有改動其它的代碼,原本編譯通過的程式編譯不過,會提示一些錯誤。

解決方法

将項目清除,然後執行qmake,再重新編譯,便可以編譯通過。

分析

上述問題是由qt的moc編譯檔案引起的,因為之前編譯生成的moc檔案時沒有宏Q_OBJECT,現在添加了宏之後,直接編譯,程式會預設使用之前已經存在的moc檔案,而代碼卻是有所改動,(新添加宏Q_OBJECT),需要将之前的moc删除後,重新編譯生成新的moc中間檔案。

Qt

繼續閱讀