1. 程式人生 > >Vs 中出現 error LNK2019: 無法解析的外部符號的解決參考

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

    今天編輯動態庫連結生成靜態檔案,但是呼叫dll封裝的類的幾個函式後出現如下錯誤:

錯誤:
1>正在連結...
1>   正在建立庫 ..\ssnmate\Debug\QQDLL.lib 和物件 ..\ssnmate\Debug\QQDLL.exp
1>QQDLL.obj : error LNK2019: 無法解析的外部符號 "public: static int __cdecl CSpeechManager::AddEventSpeech(enum SPEAK_PRIORITY,unsigned long,class CSpeakItem *,class CSpeakItem *,class CSpeakItem *)" (

[email protected]@@[email protected]@[email protected]@[email protected]),該符號在函式 "long __stdcall HookProc(int,unsigned int,long)" ([email protected]@[email protected]) 中被引用

最後發現沒有把庫檔案新增進去,新增庫檔案步驟:project-屬性--link--輸入--依賴庫: 新增相應的庫檔案(可能是SpeechManager.lib)

後面為網上找的解決問題的方法:

碰到“error LNK2019: 無法解析的外部符號”收藏
 有一個解決方案,有兩個工程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即可。

來自CSDN部落格:http://blog.csdn.net/friday5pm/archive/2007/03/08/1523859.aspx

相關推薦

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

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

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

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

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

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

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

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

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

error LNK2019: 無法解析外部符號符號在函式 被引用

#include "cocos2d.h" class GameLayer : public cocos2d::CCLayer { public: GameLayer(); ~GameLayer(); virtual bool init(); CREATE_

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

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

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

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

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

#include <Windows.h> HINSTANCE hinst;//例項控制代碼太重要了,要用一個全域性變數將其儲存起來 HWND hwnd; LRESULT CALLBACK MainWndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM

VS明明定義了函式卻編譯出錯:error LNK2019: 無法解析外部符號

1>LINK : 沒有找到 E:\VS2008\ASM_C_test\Debug\ASM_C_test.exe 或上一個增量連結沒有生成它;正在執行完全連結 1>ASM_C_test.obj : error LNK2019: 無法解析的外部符號 "void __

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

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

VS除錯報錯 “error LNK2019: 無法解析外部符號 ......”

生成解決方案的時候,報錯“error LNK2019: 無法解析的外部符號。。。。” 一般來說,這是由於缺少相應的依賴庫.lib檔案造成的,解決方法就是到【屬性管理器】——【通用屬性】——【連結器】——【附加依賴項】裡新增相應的.lib檔名稱。 如果不知道要新增什麼.li

專案生成出現問題:error LNK2019: 無法解析外部符號 __imp___vsnprintf

今天在專案生成時遇到了問題:error LNK2019: 無法解析的外部符號 __imp___vsnprintf… 幸好發現stackoverflow有人回答了這個問題http://stackoverflow.com/questions/29556290/ra

error:LNK2019:無法解析外部符號_imp_closesocket@4,該符號在函式_wmain被引用

問題: 1>------ 已啟動生成: 專案: 21client, 配置: Debug Win32 ------ 1>正在編譯... 1>21client.cpp 1>正在連結... 1>21client.obj : error LNK2019

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

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

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

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

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