uafxcwd.lib(dllmodul.obj) : error LNK2005: DllMain 已经在 中定义

原创 2018年04月16日 16:13:52

如果出现这种错误:“uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj ”或者“mfcs42ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj ”,那么“See if you have _AFXDLL and _USRDLL in the preprocessor definitions. Try removing one of them”。具体位置:IDE中 菜单Project \ Setting \ C/C++ \ preprocessor definition 。

Project \ Setting \ C/C++ \ 代码生成---->>运行时库---->>多线程调试 DLL (/MDd)

资深员工说加入以下代码:

#include "stdafx.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define new DEBUG_NEW

/////////////////////////////////////////////////////////////////////////////
// global data

// The following symbol used to force inclusion of this module for _USRDLL
#ifdef _X86_
extern "C" { int _afxForceUSRDLL; }
#else
extern "C" { int __afxForceUSRDLL; }
#endif

另外,极有可能是加了#include <afx.h>

后记:

来此取经的有人说:

http://hi.baidu.com/ollyestn/blog/item/c9baf4df832042e676c638a8.html

今天编译又碰到这个DllMain已经在xxx中被定义的问题,搜了一下,情况还很多,不过主要还是预定义的问题,我的预定义宏如下:

_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;DEBUG;_WINDOWS;_USRDLL;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;

网上有人说是:“See if you have _AFXDLL and _USRDLL in the preprocessor definitions. Try removing one of them”。但是我的定义里面只有一个 _USRDLL 而没有 _AFXDLL,但是在stdafx.h中代码中包括了包含了<afxwin.h>。

现在只要去掉_USRDLL ,再编译,OK。

简单的记下来,仅为下次碰到该问题时,不再迷惑。


WinCVS与CVSNT简明使用手则(一)

  WinCVS与CVSNT简明使用手则(作者:Jackey,网址:www.kuihua.net)1       前言:CVS是版本控制的利器,目前在Linux和Windows下都有不同版本;但是国内...
  • ycw
  • ycw
  • 2003-12-29 12:20:00
  • 6534

_DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义

原因:库冲突,两个 库执行顺序问题 1,项目-属性-链接器-命令行     /verbose:lib 然后编译,可以看到查找 库的过程(我写下我自己的log) 正在搜索 C:\Progr...
  • mincheat
  • mincheat
  • 2015-12-21 14:29:42
  • 1490

mfcs80ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经定义 的 解决方法

今天编译一个MFC DLL, 链接时遇到 错误提示: 1>正在链接... 1>mfcs80ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 C...
  • phil_gu
  • phil_gu
  • 2017-03-14 16:37:30
  • 1016

error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义 找到一个或多个多重定义的符号

今天在搞一个动态链接库的时候 ,出现了这样的错误.. 1>mfcs100ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 MSVCRTD...
  • W_SX12553
  • W_SX12553
  • 2013-01-09 16:15:32
  • 5653

mfcs100ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 dllmain.obj 中定义

mfcs100ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 dllmain.obj 中定义
  • newdayslu
  • newdayslu
  • 2015-05-31 00:02:47
  • 2842

uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj

如果出现这种错误:“uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj ”或者“mfc...
  • dotneterbj
  • dotneterbj
  • 2014-01-23 23:28:45
  • 1990

error LNK2005: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj) 解决方案

1、使用场景: 在非MFC程序(使用MFC作为静态连接库)中,添加MFC支持,静态链接MFC库 使用VC6.0编译时,发生如下错误: 2、问题原因分析: CRT 库对 new、delete 和...
  • youyongyoumou
  • youyongyoumou
  • 2016-01-26 11:36:41
  • 1010

mfcs100d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

解决: Ignore Libraries MSVCRTD.lib;mfcs100d.lib AdditionalDependencies: mfcs100d.lib;MSVCRTD.lib   如果...
  • swanabin
  • swanabin
  • 2013-09-28 10:35:37
  • 5441

nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in解决办法

nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in LM_ 解决办法: 工程->...
  • thdxs
  • thdxs
  • 2013-03-14 15:54:20
  • 4250

error LNK2005: _DllMain@12 已经在 XXX.obj 中定义 解决方法

      昨晚写了一个dll,在生成时老是说这个“error LNK2005: _DllMain@12 已经在 XXX.obj 中定义”的错误,郁闷了很久,在网上去找了找,说是加/force命令,我...
  • xxaqzy
  • xxaqzy
  • 2009-08-01 00:23:00
  • 3866
收藏助手
不良信息举报
您举报文章:uafxcwd.lib(dllmodul.obj) : error LNK2005: DllMain 已经在 中定义
举报原因:
原因补充:

(最多只允许输入30个字)