VC++ 2015 没有链接,但 VC++ 2012 有链接

VC++ 2015 doesn't link but VC++ 2012 did

本文关键字:链接 VC++ 2012 2015      更新时间:2023-10-16

我在将我们的项目从VS2012更新4移动到VS2015更新3时遇到奇怪的错误。在该解决方案中,一半的项目使用 VC++ (MSVC 14.0) 进行编译,一半的项目使用 Intel C++ 13.0 进行编译。

一切都正确编译。

需要

链接时出现问题。我收到这样的错误,似乎在std文件中......

Error   LNK2019 
unresolved external symbol 
"public: virtual void __cdecl std::basic_istream<wchar_t,struct
std::char_traits<wchar_t> >::_Add_vtordisp1(void)"
(?_Add_vtordisp1@?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAAXXZ) 
referenced in function 
"[thunk]:public: virtual void __cdecl std::basic_istream<wchar_t,struct
std::char_traits<wchar_t> >::_Add_vtordisp1`vtordisp{4294967292,128}'
(void)" (?_Add_vtordisp1@?$basic_istream@_WU?$char_traits@_W@std@@@std@@$4PPPPPPPM@IA@EAAXXZ)

我既不能用尖峰解决方案重现错误,也不能给你一段发生错误的代码,因为它似乎在std.

当我查看文件istream时,我发现了类似#pragma vtordisp(push,2) //compiler bug workaroung的东西,但我无法弄清楚它是什么错误或如何修复它。

任何线索/提示将不胜感激。

谢谢!

安装 Windows 10 SDK,然后重新定位解决方案以使用此最新 SDK。还要确保您的代码应该正确迁移到VS 2015,并且您与项目一起使用的依赖项应该是VS 2015,否则它会给出另一个错误。