一、VS報錯無法解析的外部符號
出現這個問題的根本原因是只有函數聲明,沒有函數定義
-
是否添加了lib文件(調用動態庫也需要lib)
-
生成動態庫時是否添加了導出符號
__declspec(dllexport)
二、Qt錯誤
1.錯誤1
LNK2001 無法解析的外部符號 "public: virtual struct QMetaObject const * __cdecl MockQt::metaObject(void)const " (?metaObject@MockQt@@UEBAPEBUQMetaObject@@XZ)
繼承自QObject(QObject的子類也可以)的類如果定義了信號和槽,則頭文件和源文件最好分開,如果放在一起默認不會調用MOC,也就不會生成moc文件
2.錯誤2(會在控制台進行文本提示)
QObject::connect: Parentheses expected,
connect函數中的信號沒有帶()
connect(this, SIGNAL(mySignal), SLOT(mySlot));這樣可以編譯通過,但是是錯誤的。應該給信號和槽函數都帶上()例如:connect(this, SIGNAL(mySignal()), SLOT(mySlot()));
