分类:
2008-09-17 11:11:45
为什么总是LNK2005错误,不管加了 #pragma once 还是 #ifndef __xxxxx__ 还是会说重复定义了,不知为什么!
我编译 MHServerDEVS\[Lib]BaseNetwork 时不出错,但组件时出现如下错误
Compiling...
network.cpp
Linking...
BaseNetworkDll.obj : error LNK2005: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkDll.obj : error LNK2005: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkFactory.obj : error LNK2005: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkFactory.obj : error LNK2005: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkDll.obj : warning LNK4006: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkDll.obj : warning LNK4006: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkFactory.obj : warning LNK4006: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkFactory.obj : warning LNK4006: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
Creating library ..\Obj\BaseNetwork\Debug/BaseNetwork.lib and object ..\Obj\BaseNetwork\Debug/BaseNetwork.exp
BaseNetwork.exp : warning LNK4070: /OUT:SC_BASENETWORK.dll directive in .EXP differs from output filename "D:\ICQ_DOWN\备捍荐\DLL\BaseNetwork.dll"; ignoring directive
LINK : warning LNK4098: defaultlib "uafxcwd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
D:\ICQ_DOWN\备捍荐\DLL\BaseNetwork.dll : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.
BaseNetwork.dll - 1 error(s), 0 warning(s)
但我看了IID_SC_BASENETWORK_DLL的定义处,已加了 #pragma once
但还是提示重定义,不知为什么!
此代码为一个游戏的源代码!
源代码我已放到这里了!