2016-10-16 92 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

相关问题