一、C++ 錯誤類型 :error LNK2019 無法解析的外部符號
注:本人用的編譯器版本:VS2015
C++中報 error LNK2019樊拓、LNK2001、......等類型的錯誤塘慕,對剛接觸C++的同學來說是一件非常令人頭疼的事情筋夏,因為造成此類問題的原因非常多,這里只講本人報錯的一種原因图呢。
二条篷、報錯截圖
三、報錯原因
1蛤织、本人是因為函數(shù)聲明 accumulate 與函數(shù)實現(xiàn)名 **acculate **稱不一致導(dǎo)致報 error LNK2019 錯赴叹。
2、在聲明函數(shù) accumulate(......) 的時候指蚜,未將該函數(shù)實現(xiàn)乞巧,導(dǎo)致報錯,這是造成 error LNK2019 錯誤原因的一種摊鸡;
報錯前的代碼:
1 free_throws& accumulate(free_throws& target, const free_throws& source); // 函數(shù)聲明
2
3 int main() // 主函數(shù)
4 {
5 ...........
6 }
7
8 free_throws& acculate(free_throws & target, const free_throws & source) // 函數(shù)實現(xiàn)
9 {
10 target.attempts += source.attempts;
11 target.made += source.made;
12 set_pc(target);
13 return target;
14 }
四绽媒、解決辦法
1.首先檢查所聲明的所有函數(shù)都有沒有實現(xiàn);
2.檢查聲明函數(shù)與實現(xiàn)函數(shù)的函數(shù)名免猾、參數(shù)列表是辕、返回值是否一致;
3.檢查后期自己是否有修改過函數(shù)名猎提,導(dǎo)致聲明函數(shù)名與實現(xiàn)函數(shù)名不一致
修改后的代碼:
1 free_throws& accumulate(free_throws& target, const free_throws& source); // 函數(shù)聲明
2
3 int main() // 主函數(shù)
4 {
5 ...........
6 }
7
8 free_throws& accumulate(free_throws & target, const free_throws & source) // 函數(shù)實現(xiàn)
9 {
10 target.attempts += source.attempts;
11 target.made += source.made;
12 set_pc(target);
13 return target;
}
五获三、總結(jié)
此類錯誤不太容易發(fā)現(xiàn),讀者在敲代碼時盡量細心锨苏,犯錯之時疙教,要學會總結(jié),利用好手上的工具蚓炬。
希望可以幫助到各位松逊!