升级到Visual Studio 2015后LNK 2038错误

时间:2016-04-18 20:25:39

标签: c++ hyperlink visual-studio-2015

我正在为2013年的visual studio工作,然后我升级到2015年的visual studio。该项目在早期版本上还可以,但现在我收到了这些错误:

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库。 我为解决这个问题所做的步骤是: 下载sfml for vc14。 重建sloution。 尝试在预处理器命令中忽略_MSC_VER(不再有2038错误,但我还有其他链接错误)。

没有成功......

1 个答案:

答案 0 :(得分:1)

用于库和项目的Visual Studio版本之间存在不匹配,您尝试编译。当您使用Visual Studio 2015构建项目时,其中一些是使用Visual Studio 2013编译的。

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