错误LNK2019:未解析的外部符号"__declspec(dllimport)private

use*_*417 1 c++

该项目在VC6.0下正常运行,但是,在VS2012下更新后,出现以下链接错误:

revel.lib(BaseEncoder.obj) : error LNK2019: unresolved external symbol 
    "__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Eos(unsigned int)" 
    (__imp_?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z) referenced in function 
    "protected: virtual void __thiscall Revel_BaseEncoder::Reset(void)" (?Reset@Revel_BaseEncoder@@MAEXXZ)
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?非常感谢!

Rad*_*ivu 5

很可能是因为你使用的是一个带有依赖关系的库,而不是你现在拥有的旧版stl.您可以将编译器设置为使用项目属性中的旧工具链,这样您仍然可以使用VS 2012并进行编译,前提是您仍然安装了旧的Visual Studio.

编辑:要更改平台工具集,请转到项目属性 - >常规,应该有一个名为Platform Toolset的选项,其中有一个下拉列表,您可以根据在线msdn文档选择旧版本的工具链(此处链接)

我不确定VS 6.0是否会出现在所述下拉菜单中,但如果没有,你可以在这里找到一种方法来改变它