.obj : error LNK2019: 無法解析的外部符號


記錄一個報錯

.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall


習慣上先去看看 | “#include”語句是否包含 | 或者是否包含正確。

符號無法解析意味着編譯器知道有這個符號存在,也就是有聲明,但在鏈接時,找不到實現代碼,那么就去看看報錯的這個函數有沒有實現代碼。如果它們的確已經有了,還是出現這個錯誤,就把它們重新編譯一下。

總結(預先謝謝可能的博友斧正:

①在.h里面聲明,在.cpp沒有實現。

細節重點是三個部分【①頭文件聲明②源文件實現③類名 classname::】

 

②引用自其他文件,但可能沒有放到當前工程的目錄樹下

添加現有文件->...

 

③文件或者類的命名重復

因為編譯有先后順序,在同一個工程下可能會發生替換,結果在鏈接的時候發生錯誤。

對自己操作的工程得有一些熟悉,或者命名的時候在當前的解決方案里搜索匹配一下以防萬一? 歸根結底還是保證使用較為規范的命名習慣,切忌只有上帝和你才知道的秘密。

 

④內聯函數相關,

如果內聯函數的聲明在頭文件中,實現在源文件中,這時候如果其他類中只是包含了頭文件,在調用這個內聯函數時也會出現這個問題。

此時把函數實現放到頭文件中,或者把.cpp也include進來,就可以解決問題。

 

⑤動態庫中定義的類

添加庫->...


免責聲明!

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



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