Visual studio 2015 使用VS2010构建的静态库(.lib)无法链接到使用VS2015以调试模式构建的应用程序

Visual studio 2015 使用VS2010构建的静态库(.lib)无法链接到使用VS2015以调试模式构建的应用程序,visual-studio-2015,Visual Studio 2015,我面临的问题如下: 背景: 我使用VS2010构建了一个静态库(libXYZload.lib)。在调试模式下使用VS2015构建(链接)测试应用程序(testapp.exe)时,正在使用相同的库(libXYZload.lib) 问题描述: 通过链接使用VS2010构建的静态库(libXYZload.lib),我可以使用VS2010和VS2012构建我的应用程序“testapp.exe”。但在VS2015中,我得到了以下错误: LINK /nologo /NODEFAULTLIB /OPT:NOR

我面临的问题如下: 背景: 我使用VS2010构建了一个静态库(libXYZload.lib)。在调试模式下使用VS2015构建(链接)测试应用程序(testapp.exe)时,正在使用相同的库(libXYZload.lib)

问题描述: 通过链接使用VS2010构建的静态库(libXYZload.lib),我可以使用VS2010和VS2012构建我的应用程序“testapp.exe”。但在VS2015中,我得到了以下错误:

LINK /nologo /NODEFAULTLIB /OPT:NOREF /NXCOMPAT /DynamicBase  /SAFESEH /out:testapp.exe testapp.obj ml_new.obj ml_trl.lib libsb.lib libcrvs.lib libcat.lib libXYZload.lib libXYZload.lib libredir_std.lib libredir_std.lib legacy_stdio_wide_specifiers.lib legacy_stdio_definitions.lib libvcruntime.lib libucrt.lib oldnames.lib kernel32.lib user32.lib netapi32.lib  gdi32.lib comdlg32.lib  comctl32.lib wsock32.lib shell32.lib  Rpcrt4.lib oleaut32.lib Ole32.lib Wbemuuid.lib wintrust.lib crypt32.lib Ws2_32.lib iphlpapi.lib Psapi.lib advapi32.lib Shlwapi.lib dhcpcsvc.lib userenv.lib tbs.lib libcmt.lib test_dongle_stub.lib
test_dongle_stub.lib(m_xyzstub.obj):警告LNK4075:忽略 由于“/OPT:LBR”规范,“/EDITANDCONTINUE”

libXYZload.lib(TestlmCICO.obj):错误LNK2019:未解析的外部 符号“public:char const*\uuuu thiscall type\u info::name(结构 __输入信息节点*)常量“(?)?name@type_info@@QBEPBDPAU_u_类型_信息_节点@@@Z)在中引用 函数_安全_测试libXYZload.lib(TestPublicInterface.obj):

错误LNK2001:未解析的外部符号“public:char const”* __此调用类型\信息::名称(结构\类型\信息\节点*)常量“(?)?name@type_info@@QBEPBDPAU_u_类型_信息_节点@@@Z)testapp.exe:致命

错误LNK1120:1未解析的外部NMAKE:致命错误U1077: ““C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\BIN\LINK.EXE“':返回代码“0x460”停止

我无法确定库中缺少哪个符号,因为它在VS2010和VS2012上成功构建。有人能解释一下出现上述错误的原因吗?如何解决呢


注意:此问题仅在调试模式下发生,在发布模式下工作正常。

问题出现在
type_info
类中,该类是实现的一部分。VS2010和VS2015中的此类不相同


您可以通过使用相同的编译器构建所有组件来解决此问题。

谢谢您的回复。如果是“type_info”类的问题,那么即使是发布版本,构建也应该失败。但它只在调试模式构建时失败。我不知道为什么你会这么认为。通常,发布版本使用
/OPT:ICF
,这确实隐藏了一些缺少函数的问题。