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

时间:2013-01-22 19:21:35

标签: 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)

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

1 个答案:

答案 0 :(得分:5)

很有可能是因为您使用的是依赖项构建的库,而不是您现有的stl版本。 您可以将编译器设置为使用项目属性中的旧工具链,这样您仍然可以使用VS 2012并将其编译,前提是您仍然安装了旧的Visual Studio。

编辑:要更改平台工具集,请转到项目属性 - &gt;常规,应该有一个名为Platform Toolset的选项,其中有一个下拉列表,可用于根据在线msdn文档选择旧版本的工具链(link here

我不确定VS 6.0是否会出现在所述下拉列表中,但如果没有,您可以找到一种方法来自行更改here