1、LINK : fatal error LNK1168: cannot open Debug/Test.exe for writing
解决办法:
打开任务管理器,将test.exe进程杀掉,然后重新编译链接,就可以了。
2、连接错误(LNK2001错误): unresolved external symbol “symbol”(不确定的外部“符号”)
2.1 LNK2001错误总体介绍 http://wwywnp.blog.163.com/blog/static/163722087201072595349325/
2.2 头文件定义的函数在cpp中没实现http://blog.youkuaiyun.com/michealmeng555/article/details/6529724
经过自己的试验发现两种类型的连接错误与解决方法:
1、函数定义了但未实现
1>DrawObj.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CDrawObj::MoveTo(class CRect const &,class CDrawYunView *)" (?MoveTo@CDrawObj@@UAEXABVCRect@@PAVCDrawYunView@@@Z)
像上面的错误就是CDrawObj::MoveTo在头文件定义了,但在.cpp文件中没有实现函数或实现函数的参数与定义的不一致。
2、关于 struct CRuntimeClass的错误
1>DrawObj.obj : error LNK2001: unresolved external symbol "public: virtual struct CRuntimeClass * __thiscall CDrawObj::GetRuntimeClass(void)const " (?GetRuntimeClass@CDrawObj@@UBEPAUCRuntimeClass@@XZ)
像上面的错误有两种原因:1、是在.cpp里没加IMPLEMENT_SERIAL()宏定义与.h中没加DECLARE_SERIAL(),2、是在.cpp里没加IMPLEMENT_DYNCREATE()宏定义与.h中没加DECLARE_DYNCREATE(),