VC++常見錯誤緣由解析--error LNK2019: 沒法解析的外部符號 "public: void __thiscall

根據我的遇到這個錯誤時的記錄,緣由能夠分爲一下幾種: 
緣由一: 只是在.h裏面聲明瞭某個方法, 沒有在cpp裏面實現 。 
具體講,有時候在頭文件中聲明瞭須要的方法,確實忘記了在源文件中實現; 
有時候在頭文件中聲明瞭須要的方法,在源文件中實現了該方法,可是卻遺留了方法名前的「classname::」; 
有時候在頭文件中聲明並實現了須要的方法,可是在代碼調整時直接把方法copy到源文件時,並無在函數前加「classname::」; 
緣由二: 聲明和實現都有了,可是 沒有添加到vs的project 目錄下面,這時候若是在其餘.cpp中引用的,就會出現這個錯誤。 
具體講,導入本身之前的代碼或其餘現有代碼時,複製到工程下目標文件夾後,有時候會在vs的project目錄下忘記或遺漏添加這些文件,就可能引發這個錯誤。 
緣由三: 有時候工程比較大時,會直接加入一些原有的基礎工程來提交效率,若是對原有工程不太熟悉,在工程中加入了有 相同名字的文件或者類 時,一樣會引發這個問題。 
這種狀況下的具體緣由是編譯時會出現相同名字的中間文件,由於編譯有前後順序,出現了文件替換,在其餘文件引用被替換掉的文件時,致使最後會出現了個鏈接問題。 
緣由四: 內聯函數 相關,若是內聯函數的聲明在頭文件中,實如今源文件中,這時候若是其餘類中只是包含了頭文件,在調用這個內聯函數時也會出現這個問題。函數

相關文章
相關標籤/搜索