在编译文章:
使用GetAdaptersAddresses函数获取物理MAC地址中的代码时,出现以下错误:
错误 1 error LNK2005: “void * __cdecl operator new(unsigned int)” (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义 F:\CcProjects\获取网卡物理地址MAC地址\获取网卡物理地址MAC地址\uafxcwd.lib(afxmem.obj) 获取网卡物理地址MAC地址
环境:Windows7+VS2010
环境:在非MFC程序(使用standard windows library)中,添加MFC支持,静态链接MFC库。
发生以下错误:
uafxcw.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new(unsigned int)” (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj)
uafxcw.lib(afxmem.obj) : error LNK2005: “void __cdecl operator delete(void *)” (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj)
uafxcw.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new[](unsigned int)” (??_U@YAPAXI@Z) already defined in LIBCMT.lib(new2.obj)
问题产生原因,CRT库和MFC库链接时顺序有误:
The CRT libraries use weak external linkage for the new, delete, and Dl

在Windows7环境下,使用VS2010编译非MFC程序并添加MFC支持时,遇到错误LNK2005,指出operator new等已在LIBCMTD.lib中定义。错误产生的原因是CRT库和MFC库链接顺序不正确。解决方法是在项目设置的Linker->Input->Additional Dependencies中调整库的顺序,添加nafxcw.lib, libcmt.lib(Debug下为Nafxcwd.lib, libcmtd.lib),并可能需要在忽略特定库中添加uafxcw.lib。"
107386177,9905485,CSS选择器、优先级与常见样式详解,"['CSS', '前端开发', '样式表', '布局']
最低0.47元/天 解锁文章
2704

被折叠的 条评论
为什么被折叠?



