升级到visual studio 2015后出现LNK 2038错误

LNK 2038 error after upgrading to visual studio 2015

本文关键字:LNK 2038 错误 2015 visual studio      更新时间:2023-10-16

我在visualstudio2013中从事一个项目,然后升级到visualstudio2015。该项目在早期版本上还可以,但现在我得到了这些错误:

1>sfml-system-s-d.lib(String.cpp.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in Aircraft.obj
1>sfml-graphics-s-d.lib(VertexArray.cpp.obj) : warning LNK4049: locally defined symbol ??0_Container_base12@std@@QAE@XZ (public: __thiscall std::_Container_base12::_Container_base12(void)) imported
1>sfml-system-s-d.lib(String.cpp.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::bad_cast::bad_cast(char const *)" (__imp_??0bad_cast@std@@QAE@PBD@Z) referenced in function "class std::ctype<wchar_t> const & __cdecl std::use_facet<class std::ctype<wchar_t> >(class std::locale const &)" (??$use_facet@V?$ctype@_W@std@@@std@@YAABV?$ctype@_W@0@ABVlocale@0@@Z)
1>sfml-graphics-s-d.lib(Shader.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::bad_cast::bad_cast(char const *)" (__imp_??0bad_cast@std@@QAE@PBD@Z)

它们太多了,但我只包括了其中的一个。我发现了类似的问题,但没有一个对我有效。我正在使用SFML库。我解决这个问题的步骤是:下载用于vc14的sfml。重建懒散。尝试忽略预处理器命令中的_MSC_VER(不再有2038个错误,但我仍然有其他链接错误)。

没有成功。。。

用于库的Visual Studio版本与您试图编译的项目版本不匹配。其中一些是在使用Visual Studio 2015构建项目时使用Visual Studio 2013编译的。

如果要使用Visual Studio 2015编译项目,则必须使用Visual Studio 15编译所有必需的库(例如SFML)(或者,如果可用,也可以使用VS2015查找预构建的库)。