在編譯工程的時候經常會碰到 " LNK2019:無法解析的外部符號... " 的報錯。一般來說,碰到這個錯誤有一下幾種情況:
1、頭文件中聲明了函數或者類型,但是沒有相關的實現源文件
解決:在編譯結果中找到並定位該函數,刪去多余的定義並對未實現的定義進行實現;注意刪去Debug和Release文件夾,並重新構建。
2、調用了第三方庫,但是未鏈接成功
解決:重新添加庫的.lib和.dll及相關.h文件,刪除Debug和Release文件夾並重新構建。
================================================================================
PS:
我在調用HIDAPI的項目中,卸載重裝VS后遇到LNK2019 error,但是以上方法都不起作用。最后解決問題頗費波折:
①首先刪去Debug和Release文件夾,並重新構建,無效;
②重新載入.lib和.dll及.h,重新構建,無效;
③重新編譯第三方庫,注意平台對應(Qt 用msvc2015_x86,則VS2015編譯平台選擇Win32;Qt 用msvc2015_x64,則VS2015編譯平台選擇x64),無效;
④重裝Qt、Visual Studio,無效;
⑤刪除Qt緩存,包括:
C:\Users\jiche\AppData\Local\QtProject
C:\Users\jiche\AppData\Roaming\QtProject
最終解決問題。分析原因可能是之前工程鏈接庫文件出錯,但是配置已經記錄到工程配置文件和Qt緩存中,即使重裝Qt,緩存文件還在。因此只有清楚了Qt的緩存才能奏效。
Qt重新構建的文件殘留問題無力吐槽~只能說習慣就好~