MFC DLL工程编译出错,很有普遍性!请大家帮助
第一步:
MFC DLL工程,release link出错:
Linking...
nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in LIBCMT.lib(dllmain.obj)
第二步:
按网上说的这样解决:
强制链接程序按照正确的顺序链接库
1. 在"生成"菜单上,单击"设置"。
2. 在"项目设置"对话框的"以下项目的设置"视图中,单击以选中出现链接错误的项目配置。
3. 在"链接"选项卡上,单击以选中"类别"组合框中的"INPUT"。
4. 在"要忽略的库"中,插入库名(例如,Nafxcwd.lib;Libcmtd.lib)。
注意:等效的链接程序命令行是:/NOD:。
5. 在"对象/库模块"框中,插入库名。必须确保这些库按顺序列出,且作为命令行中的前两个库(例如,Nafxcwd.lib 和 Libcmtd.lib)列出。
第三步:
再编译,又出这个问题:
Linking...
Nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: virtual __thiscall CObject::~CObject(void)" (??1CObject@@UAE@XZ) already defined in Player.obj Player是我自己写的对象
Nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: virtual void __thiscall CObject::Serialize(class CArchive &)" (?Serialize@CObject@@UAEXAAVCArchive@@@Z) already defined in GroupLib.obj
Nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in Libcmtd.lib(dllmain.obj); second definition ignored
Nafxcwd.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in Libcmtd.lib(new.obj); second definition ignored
Nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in Libcmtd.lib(dbgdel.obj); second definition ignored
是什么原因啊?请大家指导,谢谢