std :: iostream链接错误vs2010 rc1

时间:2010-03-16 05:57:51

标签: c++ visual-studio-2010

我正在将项目从vs2008转换为vs2010并且为std:ifstream / ofstream

获取链接器错误
error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::is_open(void)const " (__imp_?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ)

使用unicode或standard和release / debug构建静态(/ MT)或dll(/ MD)会产生相同的错误。 手动将libcpmtd.lib(static)或msvcprtd.lib(dll)添加到链接器没有帮助。

有没有人见过这个?

1 个答案:

答案 0 :(得分:1)

如果你没有得到这个特定问题的答案,那么我使用了一种蛮力的方法并取得了巨大的成功:

使用Visual Studio 2010,在某个临时文件夹中创建相同类型的新项目(使用相同的项目和解决方案名称),并确保使用与VS2008项目相同的选项。

此时,您可以使用视觉差异工具(我喜欢BeyondCompare)将新的VS2010项目文件与现有的VS2008项目文件进行比较。项目文件是XML,因此在视觉上比较它们相当容易。通过这种比较,我通常可以告诉您需要更改哪些库和其他选项。

如果较旧的项目文件有太多更改(使比较困难),请重复上述步骤(这次使用VS2008)创建另一个普通项目,将其写入不同的临时位置。

现在您应该能够比较VS2008和VS2010样板项目文件,以查看不同的补充和链接设置。