: error LNK2005: _DllMain@12 already defined in dllmain.obj
2013-01-15 13:59
579 查看
用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误:
error LNK2005:
_DllMain@12 already defined in xxx.OBJ
几种解决方案:
1, 你只需要在工程设置里面,把
WIN32,NDEBUG,_WINDOWS,_MBCS,_USRDLL,MSGBOX_EXPORTS,_WINDLL,_AFXDLL
中的_USRDLL,删除,就可以正确编译了
PS:在建立动态链接库工程的时候,如果选择建立一个simple project,建好后默认为mfc的,如果想建立一个拥有DllMain()的工程,则需要建立一个empty工程,自己添加文件。
error LNK2005:
_DllMain@12 already defined in xxx.OBJ
几种解决方案:
1, 你只需要在工程设置里面,把
WIN32,NDEBUG,_WINDOWS,_MBCS,_USRDLL,MSGBOX_EXPORTS,_WINDLL,_AFXDLL
中的_USRDLL,删除,就可以正确编译了
PS:在建立动态链接库工程的时候,如果选择建立一个simple project,建好后默认为mfc的,如果想建立一个拥有DllMain()的工程,则需要建立一个empty工程,自己添加文件。
相关文章推荐
- uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj
- mfcs80ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
- nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in解决办法
- uafxcw.lib(dllmodul.obj) : error LNK2005: DllMain already defined in
- mfcs100d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
- error LNK2005: __pRawDllMain already defined in UiPlugin.obj
- mfcs42.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRT
- mfcs100d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
- 调试: 编译错误, mfcs42.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRT.lib(dllmai
- mfcs100d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
- LIBCD.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll)
- libcmtd.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll) 编译错误解决方法
- mfcs90d.lib(xxx.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(xxx.obj)
- LIBCD.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll)
- 碰到这样的错误error LNK2005: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj)
- libcmtd.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll) 编译错误解决方法
- libcd.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll)
- error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
- 【error】LNK2005: already defined in LIBCMTD.lib(typinfo.obj)
- 用VC写DLL中"error LNK2005: _DllMain@12 already defined"的应对