I added it to the server project (silly me, I only had it in client), and now I get:
1>------ Build started: Project: Server SDK, Configuration: Release Win32 ------ 2>------ Build started: Project: Client SDK, Configuration: Release Win32 ------ 2>Compiling... 1>Compiling... 2>LaserBolt.cpp 1>LaserBolt.cpp 2>Linking... 1>Linking... 2>weapon_blaster.obj : error LNK2005: "private: virtual int __thiscall C_LaserBolt::YouForgotToImplementOrDeclareClientClass(void)" (?youforgottoimplementordeclareclientcl...@c_laserbolt@@EAEHXZ) already defined in c_weapon_blaster.obj 2>weapon_blaster.obj : error LNK2005: "private: virtual class ClientClass * __thiscall C_LaserBolt::GetClientClass(void)" (?getclientcl...@c_laserbolt@@EAEPAVClientClass@@XZ) already defined in c_weapon_blaster.obj 2>weapon_blaster.obj : error LNK2005: "int __cdecl ClientClassInit<struct DT_LaserBolt::ignored>(struct DT_LaserBolt::ignored *)" (??$clientclassi...@uignored@DT_LaserBolt@@@@yahpauigno...@dt_laserbolt@@@Z) already defined in c_weapon_blaster.obj 2>weapon_blaster.obj : error LNK2005: "private: static class RecvTable * C_LaserBolt::m_pClassRecvTable" (?m_pclassrecvta...@c_laserbolt@@0PAVRecvTable@@A) already defined in c_weapon_blaster.obj 2>weapon_blaster.obj : error LNK2005: "class ClientClass __g_C_LaserBoltClientClass" (?__g_C_LaserBoltClientClass@@3VClientClass@@A) already defined in c_weapon_blaster.obj 2>weapon_blaster.obj : error LNK2005: "int DT_LaserBolt::g_RecvTableInit" (?g_recvtablei...@dt_laserbolt@@3HA) already defined in c_weapon_blaster.obj 2>weapon_blaster.obj : error LNK2005: "class RecvTable DT_LaserBolt::g_RecvTable" (?g_recvta...@dt_laserbolt@@3VRecvTable@@A) already defined in c_weapon_blaster.obj 2>LaserBolt.obj : error LNK2005: "private: virtual int __thiscall C_LaserBolt::YouForgotToImplementOrDeclareClientClass(void)" (?youforgottoimplementordeclareclientcl...@c_laserbolt@@EAEHXZ) already defined in c_weapon_blaster.obj 2>LaserBolt.obj : error LNK2005: "private: virtual class ClientClass * __thiscall C_LaserBolt::GetClientClass(void)" (?getclientcl...@c_laserbolt@@EAEPAVClientClass@@XZ) already defined in c_weapon_blaster.obj 2>LaserBolt.obj : error LNK2005: "int __cdecl ClientClassInit<struct DT_LaserBolt::ignored>(struct DT_LaserBolt::ignored *)" (??$clientclassi...@uignored@DT_LaserBolt@@@@yahpauigno...@dt_laserbolt@@@Z) already defined in c_weapon_blaster.obj 2>LaserBolt.obj : error LNK2005: "private: static class RecvTable * C_LaserBolt::m_pClassRecvTable" (?m_pclassrecvta...@c_laserbolt@@0PAVRecvTable@@A) already defined in c_weapon_blaster.obj 2>LaserBolt.obj : error LNK2005: "class ClientClass __g_C_LaserBoltClientClass" (?__g_C_LaserBoltClientClass@@3VClientClass@@A) already defined in c_weapon_blaster.obj 2>LaserBolt.obj : error LNK2005: "int DT_LaserBolt::g_RecvTableInit" (?g_recvtablei...@dt_laserbolt@@3HA) already defined in c_weapon_blaster.obj 2>LaserBolt.obj : error LNK2005: "class RecvTable DT_LaserBolt::g_RecvTable" (?g_recvta...@dt_laserbolt@@3VRecvTable@@A) already defined in c_weapon_blaster.obj 2> Creating library .\Release_sdk/Client.lib and object .\Release_sdk/Client.exp 2>.\Release_sdk/Client.dll : fatal error LNK1169: one or more multiply defined symbols found 2>Build log was saved at "file://c:\Source SDK Mods\OB Sandbox\src\game\client\Release_sdk\BuildLog.htm" 2>Client SDK - 15 error(s), 0 warning(s) 1>LaserBolt.obj : error LNK2005: "protected: virtual struct datamap_t * __thiscall CLaserBolt::GetDataDescMap(void)" (?getdatadesc...@claserbolt@@MAEPAUdatamap_t@@XZ) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "public: virtual class ServerClass * __thiscall CLaserBolt::GetServerClass(void)" (?getservercl...@claserbolt@@UAEPAVServerClass@@XZ) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "public: virtual int __thiscall CLaserBolt::YouForgotToImplementOrDeclareServerClass(void)" (?youforgottoimplementordeclareservercl...@claserbolt@@UAEHXZ) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "protected: static struct datamap_t * __cdecl CLaserBolt::GetBaseMap(void)" (?getbase...@claserbolt@@KAPAUdatamap_t@@XZ) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "int __cdecl ServerClassInit<struct DT_LaserBolt::ignored>(struct DT_LaserBolt::ignored *)" (??$serverclassi...@uignored@DT_LaserBolt@@@@yahpauigno...@dt_laserbolt@@@Z) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "struct datamap_t * __cdecl DataMapInit<class CLaserBolt>(class CLaserBolt *)" (??$datamapi...@vclaserbolt@@@@YAPAUdatamap_t@@PAVCLaserBolt@@@Z) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "protected: static struct datamap_t CLaserBolt::m_DataMap" (?m_data...@claserbolt@@1Udatamap_t@@A) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "public: static class SendTable * CLaserBolt::m_pClassSendTable" (?m_pclasssendta...@claserbolt@@2PAVSendTable@@A) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "int DT_LaserBolt::g_SendTableInit" (?g_sendtablei...@dt_laserbolt@@3HA) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "class SendTable DT_LaserBolt::g_SendTable" (?g_sendta...@dt_laserbolt@@3VSendTable@@A) already defined in weapon_blaster.obj 1>LaserBolt.obj : error LNK2005: "struct datamap_t * CLaserBolt_DataDescInit::g_DataMapHolder" (?g_datamaphol...@claserbolt_datadescinit@@3PAUdatamap_t@@A) already defined in weapon_blaster.obj 1> Creating library .\Release_sdk/Server.lib and object .\Release_sdk/Server.exp 1>.\Release_sdk/Server.dll : fatal error LNK1169: one or more multiply defined symbols found 1>Build log was saved at "file://c:\Source SDK Mods\OB Sandbox\src\game\server\Release_sdk\BuildLog.htm" 1>Server SDK - 12 error(s), 0 warning(s) ========== Build: 0 succeeded, 2 failed, 2 up-to-date, 0 skipped ========== -----Original Message----- From: hlcoders-boun...@list.valvesoftware.com [mailto:hlcoders-boun...@list.valvesoftware.com] On Behalf Of Jonas 'Sortie' Termansen Sent: Friday, 15 May 2009 10:42 AM To: Discussion of Half-Life Programming Subject: Re: [hlcoders] Compiling Problems Looks like you forgot to declare or implement the server class in your .h file class definition, and that you forgot to give some functions a body - if you declare them and call them, you must give them a body. It's a little late for me to look up code, but pay some attention to the class definitions of a few entities, and you'll see what I mean. ----- Original Message ----- From: "Yaakov Smith" <m4ngr...@gmail.com> To: "'Discussion of Half-Life Programming'" <hlcoders@list.valvesoftware.com> Sent: Friday, May 15, 2009 2:33 AM Subject: [hlcoders] Compiling Problems > I'm trying to create a starwars-style laser gun. I cloned the crossbow and > crossbow bolt, but then I tried moving the cloned crossbow bolt to it's > own > .h/.cpp so I can use it for multiple weapons, and got: > > > > 1>------ Build started: Project: Server SDK, Configuration: Release Win32 > ------ > > 2>------ Build started: Project: Client SDK, Configuration: Release Win32 > ------ > > 1>Linking... > > 2>Linking... > > 2>weapon_blaster.obj : error LNK2005: "private: virtual int __thiscall > C_LaserBolt::YouForgotToImplementOrDeclareClientClass(void)" > (?youforgottoimplementordeclareclientcl...@c_laserbolt@@EAEHXZ) already > defined in c_weapon_blaster.obj > > 2>weapon_blaster.obj : error LNK2005: "private: virtual class ClientClass > * > __thiscall C_LaserBolt::GetClientClass(void)" > (?getclientcl...@c_laserbolt@@EAEPAVClientClass@@XZ) already defined in > c_weapon_blaster.obj > > 2>weapon_blaster.obj : error LNK2005: "int __cdecl ClientClassInit<struct > DT_LaserBolt::ignored>(struct DT_LaserBolt::ignored *)" > (??$clientclassi...@uignored@DT_LaserBolt@@@@yahpauigno...@dt_laserbolt@@@Z) > already defined in c_weapon_blaster.obj > > 2>weapon_blaster.obj : error LNK2005: "private: static class RecvTable * > C_LaserBolt::m_pClassRecvTable" > (?m_pclassrecvta...@c_laserbolt@@0PAVRecvTable@@A) already defined in > c_weapon_blaster.obj > > 2>weapon_blaster.obj : error LNK2005: "class ClientClass > __g_C_LaserBoltClientClass" > (?__g_C_LaserBoltClientClass@@3VClientClass@@A) > already defined in c_weapon_blaster.obj > > 2>weapon_blaster.obj : error LNK2005: "int DT_LaserBolt::g_RecvTableInit" > (?g_recvtablei...@dt_laserbolt@@3HA) already defined in > c_weapon_blaster.obj > > 2>weapon_blaster.obj : error LNK2005: "class RecvTable > DT_LaserBolt::g_RecvTable" (?g_recvta...@dt_laserbolt@@3VRecvTable@@A) > already defined in c_weapon_blaster.obj > > 2>LaserBolt.obj : error LNK2005: "private: virtual int __thiscall > C_LaserBolt::YouForgotToImplementOrDeclareClientClass(void)" > (?youforgottoimplementordeclareclientcl...@c_laserbolt@@EAEHXZ) already > defined in c_weapon_blaster.obj > > 2>LaserBolt.obj : error LNK2005: "private: virtual class ClientClass * > __thiscall C_LaserBolt::GetClientClass(void)" > (?getclientcl...@c_laserbolt@@EAEPAVClientClass@@XZ) already defined in > c_weapon_blaster.obj > > 2>LaserBolt.obj : error LNK2005: "int __cdecl ClientClassInit<struct > DT_LaserBolt::ignored>(struct DT_LaserBolt::ignored *)" > (??$clientclassi...@uignored@DT_LaserBolt@@@@yahpauigno...@dt_laserbolt@@@Z) > already defined in c_weapon_blaster.obj > > 2>LaserBolt.obj : error LNK2005: "private: static class RecvTable * > C_LaserBolt::m_pClassRecvTable" > (?m_pclassrecvta...@c_laserbolt@@0PAVRecvTable@@A) already defined in > c_weapon_blaster.obj > > 2>LaserBolt.obj : error LNK2005: "class ClientClass > __g_C_LaserBoltClientClass" > (?__g_C_LaserBoltClientClass@@3VClientClass@@A) > already defined in c_weapon_blaster.obj > > 2>LaserBolt.obj : error LNK2005: "int DT_LaserBolt::g_RecvTableInit" > (?g_recvtablei...@dt_laserbolt@@3HA) already defined in > c_weapon_blaster.obj > > 2>LaserBolt.obj : error LNK2005: "class RecvTable > DT_LaserBolt::g_RecvTable" > (?g_recvta...@dt_laserbolt@@3VRecvTable@@A) already defined in > c_weapon_blaster.obj > > 2> Creating library .\Release_sdk/Client.lib and object > .\Release_sdk/Client.exp > > 2>.\Release_sdk/Client.dll : fatal error LNK1169: one or more multiply > defined symbols found > > 2>Build log was saved at "file://c:\Source SDK Mods\OB > Sandbox\src\game\client\Release_sdk\BuildLog.htm" > > 2>Client SDK - 15 error(s), 0 warning(s) > > 1> Creating library .\Release_sdk/Server.lib and object > .\Release_sdk/Server.exp > > 1>weapon_blaster.obj : error LNK2001: unresolved external symbol "public: > virtual void __thiscall CLaserBolt::Spawn(void)" > (?sp...@claserbolt@@UAEXXZ) > > 1>weapon_blaster.obj : error LNK2001: unresolved external symbol "public: > virtual void __thiscall CLaserBolt::Precache(void)" > (?preca...@claserbolt@@UAEXXZ) > > 1>weapon_blaster.obj : error LNK2001: unresolved external symbol "public: > virtual bool __thiscall CLaserBolt::CreateVPhysics(void)" > (?createvphys...@claserbolt@@UAE_NXZ) > > 1>weapon_blaster.obj : error LNK2001: unresolved external symbol "public: > virtual unsigned int __thiscall > CLaserBolt::PhysicsSolidMaskForEntity(void)const " > (?physicssolidmaskforent...@claserbolt@@UBEIXZ) > > 1>weapon_blaster.obj : error LNK2019: unresolved external symbol "public: > virtual __thiscall CLaserBolt::~CLaserBolt(void)" (??1CLaserBolt@@u...@xz) > referenced in function "public: virtual void * __thiscall > CLaserBolt::`scalar deleting destructor'(unsigned int)" > (??_GCLaserBolt@@uaep...@z) > > 1>weapon_blaster.obj : error LNK2019: unresolved external symbol "public: > void __thiscall CLaserBolt::BoltTouch(class CBaseEntity *)" > (?boltto...@claserbolt@@QAEXPAVCBaseEntity@@@Z) referenced in function > "struct datamap_t * __cdecl DataMapInit<class CLaserBolt>(class CLaserBolt > *)" (??$datamapi...@vclaserbolt@@@@YAPAUdatamap_t@@PAVCLaserBolt@@@Z) > > 1>weapon_blaster.obj : error LNK2019: unresolved external symbol "public: > void __thiscall CLaserBolt::BubbleThink(void)" > (?bubbleth...@claserbolt@@QAEXXZ) referenced in function "struct datamap_t > * > __cdecl DataMapInit<class CLaserBolt>(class CLaserBolt *)" > (??$datamapi...@vclaserbolt@@@@YAPAUdatamap_t@@PAVCLaserBolt@@@Z) > > 1>weapon_blaster.obj : error LNK2019: unresolved external symbol "public: > static class CLaserBolt * __cdecl CLaserBolt::BoltCreate(class Vector > const > &,class QAngle const &,int,class CBasePlayer *)" > (?boltcre...@claserbolt@@sap...@abvvector@@ABVQAngle@@HPAVCBasePlayer@@@Z) > referenced in function "private: void __thiscall > CWeaponBlaster::FireBolt(void)" (?fireb...@cweaponblaster@@AAEXXZ) > > 1>.\Release_sdk/Server.dll : fatal error LNK1120: 8 unresolved externals > > 1>Build log was saved at "file://c:\Source SDK Mods\OB > Sandbox\src\game\server\Release_sdk\BuildLog.htm" > > 1>Server SDK - 9 error(s), 0 warning(s) > > ========== Build: 0 succeeded, 2 failed, 2 up-to-date, 0 skipped > ========== > > > > What am I doing wrong? Code at > http://forums.steampowered.com/forums/showthread.php?t=860217 > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders __________ Information from ESET Smart Security, version of virus signature database 4077 (20090514) __________ The message was checked by ESET Smart Security. http://www.eset.com __________ Information from ESET Smart Security, version of virus signature database 4077 (20090514) __________ The message was checked by ESET Smart Security. http://www.eset.com _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders