error LNK2005: "public: void __thiscall LinkedList::PriorPage(void)" (?PriorPage@LinkedList@@QAEXXZ) already defined in wzq.obj
Dlg.obj : error LNK2005: "public: void __thiscall LinkedList::NextPage(void)" (?NextPage@LinkedList@@QAEXXZ) already defined in wzq.obj
Dlg.obj : error LNK2005: "public: void __thiscall LinkedList::Delete(void)" (?Delete@LinkedList@@QAEXXZ) already defined in wzq.obj
Dlg.obj : error LNK2005: "public: void __thiscall LinkedList::Save(void)" (?Save@LinkedList@@QAEXXZ) already defined in wzq.obj
Dlg.obj : error LNK2005: "public: void __thiscall LinkedList::Load(void)" (?Load@LinkedList@@QAEXXZ) already defined in wzq.obj
Debug/.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
检查一下PriorPage@LinkedList这些东东。
编写MFC程序时,自定义类(未用MFC类生成向导定义的类,类定义与成员函数都放在.h头文件里),若其成员函数放在类定义外,必须成员函数定义处必须加上“inline”,即将成员函数定义为内置函数!否则,链接时就会出现“error LNK2005:…… already defined in”错误!
此类错误解决办法:
1、将成员函数定义移入类定义内;
2、在成员函数定义加上“inline”,即将成员函数定义为内置函数
3、改用MFC类生成向导定义类 http://ninghonghe2005.blog.163.com/blog/static/129527832009724105521716/
全局变量放置于头文件内引起的;
正确的声明了函数或过程,但是没有定义;
引用了Dll库,但是运行时无法找到等。
error LNK2005: "public: void __thiscall LinkedList::PriorPage(void)" (?PriorPage@LinkedList@@QAEXXZ) already defined in wzq.obj
1. 你是否是从wzq.cpp中拷贝了PriorPage()函数中LinkedList.cpp文件中?是否是拷贝了之后,忘了改其类名?
2. 你是否之前编译过了,后来你就修改了代码再编译时没有选择全编译而导致之前的wzq.cpp没有被重新编译?
3. 你是否在多个地方定义和实现了PriorPage()函数?