1

项目在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)

谁能帮我解决这个问题?非常感谢!

4

1 回答 1

5

很可能是因为您使用的库依赖于旧版本的 stl,而不是您当前拥有的。您可以将编译器设置为使用项目属性中的旧工具链,这样您仍然可以使用 VS 2012 并在您仍然安装旧的 Visual Studio 的情况下对其进行编译。

编辑:要更改平台工具集,请转到 Project Properties->General,那里应该有一个名为 Platform Toolset 的选项,其中有一个下拉菜单,您可以根据在线 msdn 文档选择旧版本的工具链(链接在这里

我不确定 VS 6.0 是否会出现在所述下拉列表中,但如果没有,您可以在此处找到自己更改的方法

于 2013-01-22T19:28:18.090 回答