1. 程式人生 > >“error LNK2019: 無法解析的外部符號”的幾種可能原因

“error LNK2019: 無法解析的外部符號”的幾種可能原因

1.前言

error LNK2019: 無法解析的外部符號這個錯之前見過很多次,能知道最根本的原因在於連結過程中沒有搜尋到程式用到的庫檔案,即*.lib。
筆記本重灌了系統,有32Bit升到64Bit,執行VTK程式時,始終報錯如下: 1>     正在建立庫 E:\Driverprogram\imgport\Debug\imgport.lib 和物件 E:\Driverprogram\imgport\Debug\imgport.exp
1>Monitor.obj : error LNK2019: 無法解析的外部符號 "int __cdecl start_convert(int,int,char *,bool)" (
[email protected]
@[email protected]),該符號在函式 "int __stdcall iEndDocPort(void *)" ([email protected]@[email protected]) 中被引用
1>p2jpg.obj : error LNK2019: 無法解析的外部符號 "void __cdecl jpeg_destroy_compress(struct jpeg_compress_struct *)" ([email protected]@[email protected]@@Z),該符號在函式 _Bmp2Jpg 中被引用
1>p2jpg.obj : error LNK2019: 無法解析的外部符號 "void __cdecl jpeg_finish_compress(struct jpeg_compress_struct *)" (
[email protected]
@[email protected]@@Z),該符號在函式 _Bmp2Jpg 中被引用
1>p2jpg.obj : error LNK2019: 無法解析的外部符號 "unsigned int __cdecl jpeg_write_scanlines(struct jpeg_compress_struct *,unsigned char * *,unsigned int)" ([email protected]@[email protected]@[email protected]),該符號在函式 _Bmp2Jpg 中被引用。

已經確信所有的依賴庫檔案都已經正確載入,為什麼還會出現這個問題??? 本文重點歸納error LNK2019出現的原因,並提供相應的解決辦法。

2.原因歸納

2.1 採用開源程式,忘記新增依賴項

這個是最常見的問題。 解決辦法如下: VC6:
工程、設定、C/C++、分類:Preprocessor、附加包含路徑:填寫附加標頭檔案所在目錄 逗號間隔多項
工程、設定、Link、分類:Input、附加庫路徑:填寫附加依賴庫所在目錄 分號間隔多項
工程、設定、Link、分類:Input、物件/庫模組:填寫附加依賴庫的名字.lib 空格間隔多項
VS20xx:
專案、屬性、C/C++、附加包含目錄:填寫附加標頭檔案所在目錄 分號間隔多項
專案、屬性、連結器、常規、附加庫目錄:填寫附加依賴庫所在目錄 分號間隔多項
專案、屬性、連結器、輸入、附加依賴項:填寫附加依賴庫的名字.lib 空格或分號間隔多項

2.2 X64編譯,採用Win32Debug

這個錯誤就是困擾筆者一天的Bug所在。之前完全沒有發現。我一直採用32Bit作業系統進行VITK開發,因為相容國外的一個開源程式法,更換了64Bit系統! 用過VITK的人都知道,在使用他們是必須在當前的環境下進行編譯生成*.lib和*.dll檔案。因此 利用VS2013 DeBug+X64編譯了這些檔案,但是在執行程式時報錯了!!! 這是Win32和X64細節造成的!更改前後如下圖所示:

3. VS2010  Win32轉換X64

1.點選“Win32”下拉框,開啟“配置管理器”

2.點選“活動解決方案管理平臺”下拉框,選“新建”
3.點選“鍵入或選擇新平臺”下拉框,選"x64",然後點選“確定”

4.配置完成,可以看見專案平臺都變為x64了,點選關閉即完成。

相關推薦

mysql “error LNK2019: 無法解析外部符號”的可能原因

error LNK2019: 無法解析的外部符號這個錯之前見過很多次,能知道最根本的原因在於連結過程中沒有搜尋到程式用到的庫檔案,即*.lib。 筆記本重灌了系統,有32Bit升到64Bit,執行VTK程式時,始終報錯如下: 1> 正在建立

error LNK2019: 無法解析外部符號”的可能原因

1.前言 error LNK2019: 無法解析的外部符號這個錯之前見過很多次,能知道最根本的原因在於連結過程中沒有搜尋到程式用到的庫檔案,即*.lib。 筆記本重灌了系統,有32Bit升到64B

error LNK2019: 無法解析外部符號;fatal error LNK1120: 1 個無法解析外部命令; 可能存在的問題

alt 配置 pan ron ima detail deb 16px 管理 一、問題:使用一個.lib出現如下錯誤 (我使用的環境 vs2012)   error LNK2019: 無法解析的外部符號 _SSL_CTX_new,該符號在函數 _main 中被引用;   fa

錯誤 1 error LNK2019: 無法解析外部符號 "public: __thiscall Distance::Distance(int)" (??0Distance@@QAE@H@Z),該符號在函數 _main 中被引用

his 無法 析構函數 this distance AI sta 語法 解析 錯誤: 錯誤 1 error LNK2019: 無法解析的外部符號 "public: __thiscall Distance::Distance(int)" (??0Distance@@QAE@

Qt error: LNK2019: 無法解析外部符號 解決

按照以下幾個步驟依次執行: 1、確認導包是否正確,尤其自定義的檔案; 2、構建-->清理專案,然後執行 qmake; 3、是否有槽函式宣告,卻沒有實現或刪除; 4、自定義類時,建構函式或者解構函式沒有實現; 特別一點的 5、是否需要修改pro檔案。例如: 使用QPr

【C++】error LNK2019: 無法解析外部符號

轉:C++ error LNK2019: 無法解析的外部符號 錯誤解決方案 今天在實現類模板特例化的時候遇到一個問題,就是把類模板函式實現放到類的cpp檔案中,然後在main函式中使用這個類的時候,就會出現無法解析的外部符號:函式名(xxxx)等錯誤,那麼出現這個錯誤的原因是什麼呢? 原

error LNK2019-無法解析外部符號 _main-該符號在函式 ___tmainCRTStartup 中被引用

問題分析: 因為Win32 console Application的入口函式是Main(),而Win32 Application的入口函式才是WinMain() 解決方案: 右鍵專案,開啟【屬性】頁,【配置屬性】——【連結器】——【系統】中的【子系統】改為【視窗 (/SUBSYSTEM:WINDOWS)

error LNK2019 無法解析外部符號 imp GetUserObjectInformationW,該符號

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

glaux.lib(tk.obj) : error LNK2019: 無法解析外部符號 _sscanf

1>glaux.lib(tk.obj) : error LNK2019: 無法解析的外部符號 _sscanf,該符號在函式 [email protected] 中被引用 1>glaux.lib(tk.obj) : error LNK2019: 無法解析的外部符號 _vspr

error LNK2019:無法解析外部符號——解決記錄

error LNK2019:無法解析的外部符號——解決記錄 本人小白,最近在用VS2013+QT做串列埠除錯時,出現了很多編譯錯誤:error LNK2019:無法解析的外部符號,如下圖所示。 網上查了很多,都說是缺少庫檔案,具體缺什麼檔案,在哪裡新增,都語焉不詳。 自己搗鼓了一下,所

VS2015 error LNK2019 無法解析外部符號 [email protecte

前言 上一篇文章中,為了編譯OpenCV的示例程式碼,然後搭建環境, 最後想直接執行示例demo,我在建立新工程的時候,直接建立了一個win32視窗專案,然後環境配置完成後,將opencv 的示例程式碼kalman.cpp直接匯入到新建的vs工程中進行編譯,直接報錯: 錯誤 LN

error LNK2019: 無法解析外部符號 [email protected],該

Reason: 學習使用socket,在stdafx.h檔案加了#include ,編譯 #include "stdafx.h" #include   using namespace std;   int _tmain(int argc

【C++】error LNK2019: 無法解析外部符號 [email protected

原因:c語言執行時找不到適當的程式入口函式 解決:對於控制檯應用程式 1.選單中選擇 Project->Properties, 彈出Property Pages視窗 2.在左邊欄中依次選擇:Configuration Properties->C/C++->

windows下QT配置pthread,解決main.obj:-1: error: LNK2019: 無法解析外部符號 __imp_pthread_create,該符號在函式 main 中被引用

QT中使用msvc2017_64編譯時,本來不支援pthread。但是又想用pthread來寫程式,就在網上各種查詢辦法,不過好像都不太可以,會報錯: main.obj:-1: error: LNK20

【轉】MSVCRTD.lib(crtexew.obj) : error LNK2019: 無法解析外部符號
VC++常見錯誤原因解析error LNK2019: 無法解析外部符號 "public: void __thiscall

VC++常見錯誤原因解析之error LNK2019: 無法解析的外部符號 "public: void __thiscall 出現這個錯誤,應該首先檢視“#include”語句是否包含,或者是否包含正確。符號無法解析意味著編譯器知道有這個符號存在,也就是有宣告,但在連結時,找不到實現程式碼,

VS2010:error LNK2019 :無法解析外部符號

最近在研究sumo,前幾天將編譯環境都搭建好了後,自己在解決方案的基礎上新增加了一個專案,但是突然冒出來好多問題,其他都已經通過網路搜尋解決。關於錯誤:error LNK2019 :無法解析的外部符號。網路方法很多,自己按照各種方法測試後依然不能解決。最後想到,和已經編譯好