現象:
採用分檔案寫法,main函式和被呼叫的類的成員函式不再在同乙個 .cpp裡,在main.cpp裡呼叫該類的成員函式,編譯器並沒有報錯,但是在鏈結時出現錯誤link2019 1120。但將main函式移到該類被呼叫成員函式所在的 .cpp檔案中,程式正常執行。
根因:
鏈結器在鏈結main函式中呼叫類的成員函式時,沒有鏈結到該函式定義處。
二、解決方法
(1)如果不管怎樣都報該錯,那麼工程建立的有問題。
可參考(2)有的朋友在做二次開發的時候,移植忘記將該檔案新增進工程,雖然vs工作目錄有該檔案,但不會主動鏈結到.exe中
新增庫檔案即可
(3)使用第三方庫檔案
在使用第三方庫檔案時,雖然有介面宣告給你使用,但並沒有實際定義,這時候需要到第三方編譯動態庫(一般都會使用動態的)的.lib。嘗試 :屬性->聯結器->輸入->附加依賴項 屬性->聯結器->常規->附加庫目錄 新增lib的路徑(最好用相對路徑)
(4)宣告定義不對稱
這種錯誤...很容易犯,如果函式名字了、型別、形參都相同,但是宣告、定義的形參const屬性或其他屬性不相同,f12可以跳轉,但是鏈結時無法成功的。
總之,就是要讓exel鏈結到該函式的定義。各
ACE的鏈結Link錯誤
很多人在 windows 使用ace 的時候往往會出現以下的 link 錯誤。why do i get errors while using tryentercriticalsection ace os.i 2384 error c2039 tryentercriticalsection is no...
VC 的鏈結錯誤LINK2001
學習vc 時經常會遇到鏈結錯誤lnk2001,該錯誤非常討厭,因為對於程式設計者來說,最好 改的錯誤莫過於編譯錯誤,而一般說來發生連 接錯誤時,編譯都已通過。產生連線錯誤的原 因非常多,尤其lnk2001錯誤,常常使人不明其所以然。如果不深入地學習和理解vc 要想改正連線錯誤lnk2001非常困難。...
常見的Link2001錯誤 轉貼
學習vc 時經常會遇到鏈結錯誤lnk2001,該錯誤非常討厭,因為對於程式設計者來說,最好改的錯誤莫過於編譯錯誤,而一般說來發生連線錯誤時,編譯都已通過。產生連線錯誤的原因非常多,尤其lnk2001錯誤,常常使人不明其所以然。如果不深入地學習和理解vc 要想改正連線錯誤lnk2001非常困難。初學者...