C++無法解析的外部符號***,Qt無法解析的外部符號metaObject,Parentheses expected


一、VS報錯無法解析的外部符號

出現這個問題的根本原因是只有函數聲明,沒有函數定義

  • 是否添加了lib文件(調用動態庫也需要lib)

  • 生成動態庫時是否添加了導出符號__declspec(dllexport)

靜態庫Lib

動態庫Dll

C++模板報無法解析的外部符號

二、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()));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM