要解开Visual Studio在编译库中生成的错位C ++名称,可以使用undname.exe
。但是,如果由于未解析的外部符号而导致库无法编译,则我遇到了识别未编码名称的问题。
示例:
Error LNK2001 unresolved external symbol __imp_ldap_value_free_len libcurl.lib(ldap.obj)
当我尝试不知道该名称时,我得到以下内容:
C:\Program Files (x86)\Microsoft Visual Studio 14.0>undname.exe __imp_ldap_value_free_len
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation. All rights reserved.
Undecoration of :- "__imp_ldap_value_free_len"
is :- "__imp_ldap_value_free_len"
这表明链接器对中间对象文件使用不同的修改格式。如何获取原始方法标题?
答案 0 :(得分:1)
要了解__imp_ldap_value_free_len形式的名称,重要的是删除__imp_前缀并找出剩余符号名称的来源。确实在Wldap32.dll中有一个ldap_value_free_len(你链接到Wldap32.lib)。