【发布时间】:2012-05-19 22:57:00
【问题描述】:
我收到以下错误:
1>test.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (__imp_??_D? $basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ) referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::basic_ofstream<char,struct std::char_traits<char>>(void)" (__imp_??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ) referenced in function _main
此测试代码运行良好:
int main(int argc, char **argv)
{
std::ofstream game_record_output;
}
直到我包含一个从 VS 2003 .NET 转换而来的旧项目的 .h
首先我认为它可能有一些与此相关的问题:
http://msdn.microsoft.com/en-us/library/8h8eh904(v=vs.90).aspx
但是,我已经检查过只有 MSVCRT.LIB 和 MSVCPRT.LIB 被链接,所以旧的 iostream 没有被链接......
我不确定为什么会发生这种情况,我假设在包含链中包含了一些错误的文件,但我已经在包含链中搜索了旧的 iostream .h 文件(即:(fstream.h 、iomanip.h、ios.h、iostream.h、istream.h、ostream.h、streamb.h 和 strstrea.h))
那么,我还有什么需要检查的吗?
项目使用MFC。
【问题讨论】:
-
顺便说一句,测试代码看起来不完整。缺少标题。
-
对不起标题,如果我使用这个:#include
它按预期工作但是当我添加我稍后需要的依赖项之一时,它开始给出链接的错误
标签: c++ visual-c++ mfc linker-errors