記錄一個報錯
.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall
習慣上先去看看 | “#include”語句是否包含 | 或者是否包含正確。
符號無法解析意味着編譯器知道有這個符號存在,也就是有聲明,但在鏈接時,找不到實現代碼,那么就去看看報錯的這個函數有沒有實現代碼。如果它們的確已經有了,還是出現這個錯誤,就把它們重新編譯一下。
總結(預先謝謝可能的博友斧正:
①在.h里面聲明,在.cpp沒有實現。
細節重點是三個部分【①頭文件聲明②源文件實現③類名 classname::】
②引用自其他文件,但可能沒有放到當前工程的目錄樹下
添加現有文件->...
③文件或者類的命名重復
因為編譯有先后順序,在同一個工程下可能會發生替換,結果在鏈接的時候發生錯誤。
對自己操作的工程得有一些熟悉,或者命名的時候在當前的解決方案里搜索匹配一下以防萬一? 歸根結底還是保證使用較為規范的命名習慣,切忌只有上帝和你才知道的秘密。
④內聯函數相關,
如果內聯函數的聲明在頭文件中,實現在源文件中,這時候如果其他類中只是包含了頭文件,在調用這個內聯函數時也會出現這個問題。
此時把函數實現放到頭文件中,或者把.cpp也include進來,就可以解決問題。
⑤動態庫中定義的類
添加庫->...