2016-10-16 91 views
0

簡而言之:在Visual C++ 2015上,我收到一個鏈接器錯誤,抱怨缺少鏈接器中存在的.lib文件中的符號。Visual C++鏈接器抱怨缺少不存在的符號


在很長:在命令行編譯和喜好的一些計劃與cl.exe時,我得到以下爲第一許多錯誤的:

main.obj : error LNK2001: unresolved external symbol "protected: static struct wxEventTable const wxApp::sm_eventTable" ([email protected]@@[email protected]@B) 

AFAIK,這個長行說我的main.obj引用了一個符號?sm_eventTable @ wxApp @@ 1UwxEventTable @@ B關聯的函數,但是鏈接程序在我在命令行上提供的(long)列表中找不到這個符號。

我在/ MD模式下編譯。不知道這是否有幫助,傷害或者沒有重要性。

一個我用鏈接的文件是wxmsw31u_core.lib,做

DUMPBIN /頭wxmsw31u_core.lib> here.txt

給出了一個長文件containting以下

Version  : 0 
    Machine  : 8664 (x64) 
    TimeDateStamp: 56D46194 Mon Feb 29 16:19:48 2016 
    SizeOfData : 00000045 
    DLL name  : wxmsw310u_core_vc140_x64.dll 
    Symbol name : [email protected]@@[email protected]@B (protected: static struct wxEventTable const wxApp::sm_eventTable) 
    Type   : data 
    Name type : name 
    Hint   : 14083 
    Name   : [email protected]@@[email protected]@B 

從這我推斷wxmsw31u_core.lib這是一個「導入庫」:換句話說,這意味着這個庫不包含代碼,但只是指的是實際包含代碼的dll文件wxmsw310u_core_vc140_x64.dll。 ?

後者wxmsw310u_core_vc140_x64.dll文件確實提到sm_eventTable @ wxApp @@ 1UwxEventTable @@ B中我檢查:

DUMPBIN/EXPORTS wxmsw310u_core_vc140_x64.dll> here2.txt

14084 3703 0057F008 [email protected]@@[email protected]@B = [email protected]@@[email protected]@B (protected: static struct wxEventTable const wxApp::sm_eventTable) 

我注意到第一個數字等於前一個標題的提示加上一個。我想這是正常的?

我花了時間檢查上面的DLL,但AFAIK,在鏈接過程中不需要DLL(調用生成的.exe時需要)。總而言之,看起來一切都在那裏,它應該聯繫起來,所以我不知道這裏有什麼問題。


編輯

我部分地通過編譯自己的libary而不是使用的Windows通過提供的wxWidgets編譯binaires解決了這個問題:現在我可以編譯我的程序,一切都很好。

好吧,不是全部:最初的問題依然存在。我有一種情況,我試圖鏈接一個obj與一個lib來獲得一個exe,obj指的是一個符號,其錯亂的名字是在lib中逐字呈現的,鏈接器確實加載了obj和lib(使用/ VERBOSE確認),但鏈接器拒絕將該符號視爲「已解決」。爲什麼?

我會創建一個新的問題,我將要求解釋有待解決的條件。

回答

0

AFAIK,這條長線說我的main.obj指的是一個符號的函數?

是的,鏈接器無法在指定的路徑上找到[email protected]@@[email protected]@B

檢查您是否具有正確設置參數Additional Library Path和應用程序的該目標平臺是/Machine:X64

+0

謝謝您的回答。我的命令行的確具有/ MACHINE:X64和/ LIBPATH:「路徑到lib」(無論如何沒有lib鏈接器在前面的步驟停止)。 – Arnaud

+0

@Arnaud'/ LIBPATH'應該是目錄的路徑,而不是庫文件本身 – Nikita

+0

是的,這是正確的路徑 – Arnaud

相關問題