错误 LNK2019: 未解析的外部符号"__declspec(DLL导入) 专用

error LNK2019: unresolved external symbol "__declspec(dllimport) private

本文关键字:declspec DLL 导入 专用 符号 LNK2019 外部 错误      更新时间:2023-10-16

项目在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)
有谁能帮我解决这个问题吗?非常感谢!

最有可能的原因是您使用的库是由较旧版本的stl的依赖项构建的。你可以从项目属性中设置编译器使用旧的工具链,这样你仍然可以使用VS 2012并让它编译,前提是你仍然安装了旧的visual studio。

编辑:要更改平台工具集,请转到项目属性->通用,那里应该有一个名为平台工具集的选项,有一个下拉菜单,您可以使用它来选择工具链的旧版本,根据在线msdn文档(链接在这里)

我不确定是否vs6.0会出现在下拉菜单中,但如果没有,你可以在这里找到一个方法来改变它