1. 程式人生 > >C++ error LNK2019: 無法解析的外部符號 錯誤解決方案

C++ error LNK2019: 無法解析的外部符號 錯誤解決方案

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

原因就是現在的編譯裡不支援模板函式的申明和實現分開,要像上面那樣使用類成員函式,有以下兩種方法

1. 在使用這個類的檔案中包含#include“xxxx.cpp”

2.在類標頭檔案末尾包含模板實現函式'#include"xxxx.cpp"

這兩種方法都可以解決上面的問題。

(若編譯通過 連結未通過 應該考慮外部連結的情況 從專案的連結,專案的屬性設定考慮 而不是從程式碼本身的角度考慮)(如果使用vs的IDE 可以在右鍵專案-屬性-連結器的下面 著重修改常規-附加庫目錄 輸入-附加依賴項)

下面我們來說下error2019會在什麼時候出現?

1. 在使用動態庫時候,沒有包含相應的lib

解決方案:#pragma comment( lib,"xxxx.lib");

2.函式只進行了申明而沒有進行定義

解決方案:為申明的函式新增函式實現

3.缺少.obj目標檔案

解決方案:從新設定檔案編譯的路徑,然後重新編譯

相關推薦

C++ error LNK2019: 無法解析外部符號 錯誤解決方案

今天在實現類模板特例化的時候遇到一個問題,就是把類模板函式實現放到類的cpp檔案中,然後在main函式中使用這個類的時候,就會出現無法解析的外部符號:函式名(xxxx)等錯誤,那麼出現這個錯誤的原因是什麼呢?原因就是現在的編譯裡不支援模板函式的申明和實現分開,要像上面那樣使用

Visual Studio 2013 C++ 呼叫mysql錯誤 error LNK2019: 無法解析外部符號
C++的error LNK2019: 無法解析外部符號編譯錯誤

1>Proxy.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 "public: enum ProxyStatus __thiscall CProxy::ConnectProxyServer(u

錯誤 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@

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

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

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

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

VC++常見錯誤原因解析error LNK2019: 無法解析外部符號 "public: void __thiscall

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

error LNK2019: 無法解析外部符號C++程式設計出現問題的解決辦法)

今天,練習程式設計時,照著書本敲程式碼,居然出現了問題,太詭異了。而且出現的是:error LNK2019: 無法解析的外部符號 這樣詭異的問題,著實困擾了我10分鐘。然後我找到了解決辦法——補充預設不帶引數的建構函式的函式體。 ####################

C專案如何轉C++專案——error LNK2019: 無法解析外部符號 "unsigned int __cdecl

實驗的時候,需要呼叫的庫是C++版本,而進行操作的源專案是C版本,這個時候就需要將C版本的專案轉化為C++。 C語言專案轉化為C++專案還是比較簡單的。 步驟: 把需要修改的.c 檔案直接改成 .cpp。 針對.cpp的報錯進行一一修改,基本是記憶體

C++控制檯專案中使用C工程程式碼時的注意,避免出現error LNK2019: 無法解析外部符號

當我們在寫 C++控制檯專案時候,有時用到一些執行緒的演算法程式碼專案,這些程式碼專案是用c寫的。當使用時,需要在c的標頭檔案中標註如下內容,才能使得cpp檔案能夠編譯使用c的函式等,才避免在編譯時候出現error LNK2019: 無法解析的外部符號###,在_main中

QT、VS常見bug及解決辦法(四)——錯誤    1    error LNK2019: 無法解析外部符號

問題1:無法解析的外部符號 "void __cdecl cv::fastFree(void *)" 錯誤 1 error LNK2019: 無法解析的外部符號 "void __cdecl cv::fastFree(void *)" ([email protecte

error LNK2019: 無法解析外部符號 六處錯誤的糾正

錯誤    18    error LNK2019: 無法解析的外部符號 "public: void __thiscall cv::FeatureDetector::detect(class cv::Mat const

VS常見錯誤之一:error LNK2019: 無法解析外部符號

轉自:http://www.cnblogs.com/yangcs/p/5087490.html   由於經常使用VS的開發環境,所以經常遇到一些錯誤提示,其中error LNK2019是很常見的一個報錯。今天將此錯誤的原因和常見解決辦法根據自己的經驗小小總結一下。  

C++】error LNK2019: 無法解析外部符號 "public: void __thiscall

出現這個錯誤,應該首先檢視“#include”語句是否包含,或者是否包含正確。符號無法解析意味著編譯器知道有這個符號存在,也就是有宣告,但在連結時,找不到實現程式碼,那麼就去看看報錯的這個函式有沒有實現程式碼。如果它們的確已經有了,還是出現這個錯誤,就把它們重新編譯一下。

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

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

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

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

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

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