1. 程式人生 > >LNK2019的常見情況及解決方法

LNK2019的常見情況及解決方法

導致LNK2019的常見問題:

(1)未連結的物件檔案或包含符號定義的庫

(2)符號宣告的拼寫不與符號的定義相同

(3)使用了函式,但型別或引數數目不匹配函式定義

(4)宣告但未定義的函式或變數

(5)  呼叫約定是函式宣告和函式定義之間的差異

(6)符號定義在c檔案中,但未使用extern C在c++檔案中宣告

(7)符號定義為靜態,並隨後被外部檔案引用

(8)未定義類的靜態成員

(9) 生成依賴項僅定義為解決方案中專案依賴項

(10)第三方庫問題和Vcpkg

vcpkg 是一種命令列包管理器,可極大簡化 Windows 上第三方庫的購置與安裝。如果專案要使用第三方庫,建議通過 vcpkg 來安裝它們。vcpkg 同時支援開源和專有庫。

已測試 vcpkg 公共目錄中所有庫與 Visual Studio 2015 及 Visual Studio 2017 的相容性。通過 vcpkg 可以消除或最大程度減少不匹配二進位制檔案的存在風險及它可能造成的問題。

常見修改方法:

a.改為靜態CRT

Configuration Properties->C/C++->Code Generation->Runtime Library->
debug版選/MD

release版選/MT

b.嚴重性程式碼說明專案檔案行禁止顯示狀態

錯誤LNK2019無法解析的外部符號 WinMain,該符號在函式 "int __cdecl __scrt_common_main_seh(void)" (

[email protected]@YAHXZ)中被引用。

WinMain是Win32專案的入口,所以把應用程式改為控制檯型別

考慮可能的原因:
[0]出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.
[1]只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析
[2]宣告和定義沒有統一,造成連結不一致,無法解析
[3]沒有在專案屬性頁的連結器的命令列選項加入相應的類包。
[4]沒有在c++包含目錄和庫目錄加入相應的類包路徑(*.h和*.lib),*.h一般在src資料夾中,*.lib一般在lib資料夾
[5]在測試工程中被測檔案目錄可能需要包含被測類的cpp定義檔案
[6]ICE介面測試時,無法解析可能因為被測檔案沒有包含進相關的cpp檔案,另外,在TestSuite_ProjectRun.h檔案中需要包含IProjectRun.h標頭檔案,及相關的標頭檔案(舉例)。

[7]import相關的無法解析內容,解決辦法是在連結器的依賴項中加入相應的動態庫

[8]出現如下錯誤的原因一般是動態庫沒有包進來。__imp
ProjectRun.obj : error LNK2019: 無法解析的外部符號 __imp__StartHistoryLocalModule,該符號在函式 "protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)" ([email protected]@[email protected]@MAEHXZ) 中被引用

[9]error LNK2001: 無法解析的外部符號 __imp___CrtDbgReportW
工程屬性,C/C++,程式碼生成,執行時庫選擇MDd,

[9]無法解析的外部符號"__declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)" ([email protected]@[email protected]@[email protected]@[email protected]@@Z),該符號在函式"public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)" ([email protected]@[email protected]@[email protected]@[email protected]@@Z) 中被引用

原因可能是工程配置檔案中有多餘選項,請參考其他模組的配置選項,不要有多餘配置。

[10]在 專案屬性\連結器\輸入\附加依賴項 中 沒有新增***.lib


相關推薦

LNK2019常見情況解決方法

導致LNK2019的常見問題:(1)未連結的物件檔案或包含符號定義的庫(2)符號宣告的拼寫不與符號的定義相同(3)使用了函式,但型別或引數數目不匹配函式定義(4)宣告但未定義的函式或變數(5)  呼叫約定是函式宣告和函式定義之間的差異(6)符號定義在c檔案中,但未使用exte

常見的表死鎖情況解決方法

常見的表死鎖情況及解決方法 1、死鎖的第一種情況 一個使用者A 訪問表A(鎖住了表A),然後又訪問表B;另一個使用者B 訪問表B(鎖住了表B),然後企圖訪問表A;這時使用者A由於使用者B已經鎖住表B,它必須等待使用者B釋放表B才能繼續,同樣使用者B要等使用者A釋放表A才能繼續,這就死鎖就產生了。

常見的死鎖情況解決方法

1、死鎖的第一種情況 一個使用者A 訪問表A(鎖住了表A),然後又訪問表B;另一個使用者B 訪問表B(鎖住了表B),然後企圖訪問表A;這時使用者A由於使用者B已經鎖住表B,它必須等待使用者B釋放表B才能繼續,同樣使用者B要等使用者A釋放表A才能繼續,這就死鎖就

Maven常見異常解決方法

for display maven2 main collect nts exist temp set 異常1: [ERROR] Failed to execute goal on project biz_zhuhai: Could not resolve dependen

web程序常見錯誤解決方法

開始 個數字 ice 依據 文件中 方法參數 500錯誤 程序 運行 404錯誤產生原因及解決方法 在剛開始進行Web應用開發的時候,經常看見頁面出現404這個數字,我們一般會稱之為運行產生了404錯誤。類似於404這個數字,還有可能在頁面上看到405、500這兩個數字,他

銀河麒麟操作系統常見問題解決方法(四)

更換 架構 ash 信息技術 .cn 計算 科技 安裝問題 cti 銀河麒麟操作系統常見問題及解決方法(四) ——激活問題 銀河麒麟操作系統是國防科大唯一授權給天津麒

webpack構建工具常見問題解決方法

webpack 常見問題 build報錯 webpack構建工具常見問題及解決方法 在運用webpack開發項目的時候經常會遇到各種各樣的問題,我對實際開發項目中實際遇到的一些問題 進行總結,希望能幫助到大家。 ?? 1. 構建需要的包未添加依賴報錯 Module not fo

IIS_常見問題解決方法

解決問題 解決辦法 div www. 命令提示符 spa usr ebs occurred 配置錯誤 在唯一密鑰屬性“value”設置為“default.aspx”時,無法添加類型為“add&r

Java虛擬機系列(三)---內存溢出情況解決方法

方法 運行時常量池溢出 超過 stack 必須 解決 字節 maxperm 描述 因為Java虛擬機內存有堆內存、方法區、虛擬機棧、本地方法棧和程序計數器五部分組成,其中程序計數器是唯一一塊不會發生內存溢出異常的內存區,所以只有四類內存區可能發生內存溢出異常,其中虛擬機棧和

jenkins 常見錯誤解決方法整理

ref 令行 follow ESS tro windows ins 常見錯誤 以管理員身份運行 現象 WMI.WmiException:AccessDenied 解決方法: 以管理員身份運行 cmd 命令行 jenkins-slave install jenkins

Maven常見異常解決方法---測試代碼編譯錯誤

detail mave https ror 錯誤 failure 異常 gin pro [ERROR] Please refer to E:\maven\web_nanchang\target\surefire-reports for the individual test

Solr12-SolrCloud部署中的常見問題解決方法

目錄 1 ZooKeeper管理配置檔案的另一種方法 2 Solr服務不能訪問 3 部分或全部節點處於”Recovering”或”Gone”狀態 4 SolrCloud模式下, 啟動Tomcat服務耗時太久 5 其他問題(尚未驗證, 請存疑) 參考資料 1 ZooKeeper

BCP SQL匯出EXCEL常見問題解決方法;資料匯出儲存過程

一、‘xp_cmdshell’的啟用 SQL Server阻止了對元件‘xp_cmdshell’的過程‘sys.xp_cmdshell’的訪問。因為此元件已作為此服務囂安全配置的一部分而被關 閉。系統管理員可以通過使用sp_configure啟用‘xp_cmdshell’。有關啟用‘xp_cmdshell’

BCP SQL導出EXCEL常見問題解決方法;數據導出存儲過程

添加 啟用 advance query repl 開啟 功能 對組 pla 一、‘xp_cmdshell’的啟用 SQL Server阻止了對組件‘xp_cmdshell’的過程‘sys.xp_cmdshell’的訪問。因為此組件已作為此服務囂安全配置的一部分而被關 閉。系

Keepalived兩節點出現雙VIP情況解決方法【原創】

1、故障現象 倆臺伺服器keepalived的vip在倆臺伺服器同時出現 A:10.70.12.72 B:10.70.12.73   2、問題分析 1)、先分析那臺伺服器在提供服務 A:10.70.12.72 B:10.70.12.73 可以看到是B機器72在對外提

ENVI FLAASH大氣校正常見錯誤解決方法(轉載)

ENVI FLAASH大氣校正常見錯誤及解決方法(轉載) 本文彙總了ENVI FLAASH大氣校正模組中常見的錯誤,並給出解決方法,分為兩部分:執行錯誤和結果錯誤。前面是錯誤提示及說明,後面是錯誤解釋及解決方法。 FLAASH對輸入資料型別有以下幾個要

nginx常見錯誤解決方法

nginx: [error] open() “/var/run/nginx.pid” failed (2: No such file or directory) 今天修改了下nginx配置,重新載入配置檔案的時候報瞭如下錯誤 [root@renguangli ~]# nginx

Solr12 - SolrCloud部署中的常見問題解決方法

文章目錄 1 ZooKeeper管理配置檔案的另一種方法 2 Solr服務不能訪問 3 部分或全部節點處於”Recovering”或”Gone”狀態 4 SolrCloud模式下, 啟動Tomcat服務耗時太久 5 其他問題(尚未驗證, 請存疑)

Resin 常見問題解決方法(FAQ)

                        Resin 常見問題及解決方法(FAQ)   轉載:http://blog.sina.com.cn/s/

部署wordpress和phpMyAdmin常見問題解決方法

部署wordpress和phpMyAdmin常見問題及解決方法 (一) wordpress常見問題:      建立資料庫連線時錯誤      解決:      1. MySQL