Linking...
nafxcw.lib(wincore.obj) : error LNK2005: _InitMultipleMonitorStubs already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _xGetSystemMetrics@4 already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _xMonitorFromPoint@12 already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _xMonitorFromRect@8 already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _xMonitorFromWindow@8 already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _xGetMonitorInfo@8 already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _xEnumDisplayMonitors@16 already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _g_fMultiMonInitDone already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _g_pfnEnumDisplayMonitors already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _g_pfnGetMonitorInfo already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _g_pfnMonitorFromPoint already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _g_pfnMonitorFromRect already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _g_pfnMonitorFromWindow already defined in PPTooltip.obj
nafxcw.lib(wincore.obj) : error LNK2005: _g_pfnGetSystemMetrics already defined in PPTooltip.obj
C:\Program Files (x86)\HTDriver\20407\HT_USBKeyTool_R.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
*************.exe - 15 error(s), 3 warning(s)
然后 我给Release配置: Link的命令行中增加这个命令 /FORCE:MULTIPLE。编译可以通过,但是有如下警告:
Linking...
nafxcw.lib(wincore.obj) : warning LNK4006: _InitMultipleMonitorStubs already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _xGetSystemMetrics@4 already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _xMonitorFromPoint@12 already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _xMonitorFromRect@8 already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _xMonitorFromWindow@8 already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _xGetMonitorInfo@8 already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _xEnumDisplayMonitors@16 already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _g_fMultiMonInitDone already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _g_pfnEnumDisplayMonitors already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _g_pfnGetMonitorInfo already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _g_pfnMonitorFromPoint already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _g_pfnMonitorFromRect already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _g_pfnMonitorFromWindow already defined in PPTooltip.obj; second definition ignored
nafxcw.lib(wincore.obj) : warning LNK4006: _g_pfnGetSystemMetrics already defined in PPTooltip.obj; second definition ignored
C:\Program Files (x86)\HTDriver\20407\HT_USBKeyTool_R.exe : warning LNK4088: image being generated due to /FORCE option; image may not run
***************.exe - 0 error(s), 18 warning(s)
然后运行这个exe,程序报错退出……
哪位大神知道这个问题怎么解决呢,谢谢!
nafxcw.lib(wincore.obj) : error LNK2005: _g_pfnMonitorFromWindow already defined in PPTooltip.obj
这个上面不是说了:在生成nafxcw.lib 的时候 ,链接出错了。 wincore文件里 的一些函数 链接的时候检查到 PPTooltip 文件里已经定义了。 你看下这两个文件 。 是不是都定义了 g_pfnMonitorFromWindow。 一类的。 检查下这两个文件
先看项目配置,试着把release的优化选项全部关闭,然后逐步打开。
这样看代码很难看出什么原因的。
CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。
当 C 运行时 (CRT) 库和 Microsoft 基础类 (MFC) 库的链接顺序有误时,可能会出现以下 LNK2005 错误。
解决方法:
强制链接器按照正确的顺序链接库!
看下代码和一些细节有没有错误的地方
当 C 运行时 (CRT) 库和 Microsoft 基础类 (MFC) 库的链接顺序有误时,可能会出现以下 LNK2005 错误。