1. 程式人生 > >“error LNK2019: 無法解析的外部符號”問題解決方案

“error LNK2019: 無法解析的外部符號”問題解決方案

最近用VS2013程式設計時,出現如下錯誤:

錯誤75error LNK2019: 無法解析的外部符號 "public: __thiscall CmCurveEx::CmCurveEx(class cv::Mat const &,float)" ([email protected]@[email protected]@[email protected]@[email protected]),該符號在函式 "public: bool __thiscall CaptureToyContourPixel::CaptureGLBufferToBMPOf24BitsInAnyLarge(char *,int,int,int,int)" (

[email protected]@@[email protected]) 中被引用C:\Users\liulimingl\Desktop\EasyToy4.24\DrawDll\CaptureToyContourPixel.objDrawDll

然後各種查閱,有說是找不到附加依賴項的,提出這樣解決:

project-屬性--link--輸入--依賴庫: 新增相應的庫檔案.lib

實驗後,發現仍然不正確,最後在一篇部落格中找到解決方法如下:

有一個解決方案,有兩個工程A,B。工程B中定義了一個類,在工程A的demo.cpp中引用該類,但是如果是

#include "XX,h",則會出現“error LNK2019: 無法解析的外部符號”

如果是#include "XX.cpp",則可以順利編譯通過。

想來是因為引用 .h 檔案導致找不到.cpp中的定義,而引用.cpp可以通過.cpp找到.h(.cpp有對.h的include)

但是如果同在工程B下面,則#include "XX,h"也是正確的,它會自動關聯到同名的(反正是對應的).cpp檔案。

在不同工程中應該如何引用呢?

看見一種原因分析,如下:

現場情況:

funcname 在檔案file.cpp/h中定義實現

void funcname(void) {;}

filecall.c檔案內呼叫funcname()函式。

出現上面情況。

症因:因c/c++混合程式設計, c檔案內函式無法呼叫c++檔案內函式。

解決,或者將c檔名改為.cpp,或者將c++檔名改為.c

上面的解決採用將 file.cpp 更名為file.c即可。

在這裡mark一下,轉自:http://blog.csdn.net/friday5pm/article/details/1523859

相關推薦

error LNK2019:無法解析外部符號”的解決方案

在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗. 僅供參考. 考慮可能的原因: [0]出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包. [1]只寫了類

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

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

error LNK2019: 無法解析外部符號”問題解決方案

最近用VS2013程式設計時,出現如下錯誤: 錯誤75error LNK2019: 無法解析的外部符號 "public: __thiscall CmCurveEx::CmCurveEx(class cv::Mat const &,float)" ([email

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

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

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

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

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

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

VS2015下解決:error LNK2019: 無法解析外部符號 __iob_func

在使用VS2015下使用libjpeg-turbo靜態庫,編譯時報錯了: error LNK2019: 無法解析的外部符號 __iob_func,該符號在函式 output_message 中被引用 根據關鍵字在網上找到一些文章描述了類似的錯誤,大都

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

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

error LNK2019: 無法解析外部符號 (解決方法)

在用C++進行套接字程式設計時遇到下面的錯誤: 1>------ 已啟動生成: 專案: NetClient, 配置: Debug Win32 ------ 1>  NetClient.cpp 1>c:/my documents/visual studio

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

C++工程編譯時出現如下連結錯誤提示: 原因一:只是在.h裡面聲明瞭某個方法,沒有在cpp裡面實現; 原因二:在工程中加入了有相同名字的檔案或者類; 原因三:如果此類為靜態庫中定義的類,可能沒有新增標頭檔案目錄和檔案引用的lib靜態庫路徑; 新增方法:   新增工

Qt5 error LNK2019 無法解析外部符號 解決辦法

1、問題: 最近使用QT 5.0.2 設計介面,遇到一個糾結的問題: 建立工程後,再新建一個新的類(如class a),類宣告在a.h標頭檔案中,在main.cpp中 #include "a

Vs 中出現 error LNK2019: 無法解析外部符號解決參考

    今天編輯動態庫連結生成靜態檔案,但是呼叫dll封裝的類的幾個函式後出現如下錯誤: 錯誤: 1>正在連結... 1>   正在建立庫 ..\ssnmate\Debug\QQDLL.lib 和物件 ..\ssnmate\Debug\QQDLL.exp 1&g

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

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

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

出現錯誤 9 error LNK2019: 無法解析的外部符號 _cvGEMM,該符號在函式 "bool __cdecl Train(char const *,int,char const *,int,char const *,char const *)" ([email

*.Obj:error LNK2019: 無法解析外部符號 (解決方法)

1>------ 已啟動生成: 專案: NetClient, 配置: Debug Win32 ------ 1>  NetClient.cpp 1>c:/my documents/visual studio 2010/projects/netserver/netclient/netcli

ARToolKit編譯error LNK2019: 無法解析外部符號 ___glutInitWithExit@12,該符號在函式 _glutInit_ATEXIT_HACK@8 中被引用 解決辦法

1錯誤: 在批量編譯ARToolKit的時候,老是遇到報以下兩個錯誤: 2解決辦法: 在專案工程屬性–》C/C++ –》前處理器 –》前處理器定義 中新增 GLUT_BUILDING_LIB 3原因: OpenGL沒有配置好

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@

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

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