Log in

View Full Version : Problems Trying to Compile 0.6.4 w/ Visual Studio 2003


sesmar
01-10-2006, 02:01 AM
I am trying to compile the latest source code (EQEmu-0.6.4-DR1-588) From the download section using Visual Studio 2003. I have MySql 4.0.21, Perl 5.8.7 and zLib 1.2.3 installed.

I have added all the Include and Library directories into Visual Studio under options. I am able to build EmuShareMem and World just fine. Zone does not build. Everything compiles fine it is the linking stage that fails. I am getting a lot of unresolved external symbol errors.


zoning.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
trading.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
tribute.obj : error LNK2019: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A) referenced in function __ehhandler$?AddTributePoints@Client@@QAEXH@Z
worldserver.obj : error LNK2019: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A) referenced in function "public: void __thiscall WorldServer::Process(void)" (?Process@WorldServer@@QAEXXZ)
zone.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
spell_effects.obj : error LNK2019: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A) referenced in function "public: bool __thiscall Mob::SpellEffect(class Mob *,unsigned short,float)" (?SpellEffect@Mob@@QAE_NPAV1@GM@Z)
spells.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
titles.obj : error LNK2019: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A) referenced in function "public: bool __thiscall TitleManager::LoadTitles(void)" (?LoadTitles@TitleManager@@QAE_NXZ)
tradeskills.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
petitions.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
PlayerCorpse.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
questmgr.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
special_attacks.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
MobAI.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
net.obj : error LNK2001: unresolved external symbol "class OpcodeManager * ZoneOpcodeManager" (?ZoneOpcodeManager@@3PAVOpcodeManager@@A)
command.obj : error LNK2019: unresolved external symbol "void __cdecl log_disable(enum LogType)" (?log_disable@@YAXW4LogType@@@Z) referenced in function "void __cdecl command_mlog(class Client *,class Seperator const *)" (?command_mlog@@YAXPAVClient@@PBVSeperator@@@Z)
command.obj : error LNK2019: unresolved external symbol "void __cdecl log_enable(enum LogType)" (?log_enable@@YAXW4LogType@@@Z) referenced in function "void __cdecl command_mlog(class Client *,class Seperator const *)" (?command_mlog@@YAXPAVClient@@PBVSeperator@@@Z)
command.obj : error LNK2001: unresolved external symbol "char const * * log_category_names" (?log_category_names@@3PAPBDA)
embperl.obj : error LNK2019: unresolved external symbol _boot_PerlPacket referenced in function _xs_init
EQStream.obj : error LNK2019: unresolved external symbol "public: class EQMailPacket * __thiscall EQProtocolPacket::MakeMailPacket(void)const " (?MakeMailPacket@EQProtocolPacket@@QBEPAVEQMailPac ket@@XZ) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(class EQProtocolPacket *)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PAVEQProtocolPacket@@@Z)
EQStream.obj : error LNK2019: unresolved external symbol "public: class EQChatPacket * __thiscall EQProtocolPacket::MakeChatPacket(void)const " (?MakeChatPacket@EQProtocolPacket@@QBEPAVEQChatPac ket@@XZ) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(class EQProtocolPacket *)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PAVEQProtocolPacket@@@Z)
EQStream.obj : error LNK2019: unresolved external symbol "public: class EQZonePacket * __thiscall EQProtocolPacket::MakeZonePacket(void)const " (?MakeZonePacket@EQProtocolPacket@@QBEPAVEQZonePac ket@@XZ) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(class EQProtocolPacket *)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PAVEQProtocolPacket@@@Z)
EQStream.obj : error LNK2019: unresolved external symbol "public: class EQWorldPacket * __thiscall EQProtocolPacket::MakeWorldPacket(void)const " (?MakeWorldPacket@EQProtocolPacket@@QBEPAVEQWorldP acket@@XZ) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(class EQProtocolPacket *)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PAVEQProtocolPacket@@@Z)
EQStream.obj : error LNK2019: unresolved external symbol "public: class EQLoginPacket * __thiscall EQProtocolPacket::MakeLoginPacket(void)const " (?MakeLoginPacket@EQProtocolPacket@@QBEPAVEQLoginP acket@@XZ) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(class EQProtocolPacket *)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PAVEQProtocolPacket@@@Z)
EQStream.obj : error LNK2019: unresolved external symbol "private: __thiscall EQMailPacket::EQMailPacket(unsigned char const *,unsigned int)" (??0EQMailPacket@@AAE@PBEI@Z) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(unsigned char const *,unsigned int)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PBEI@Z)
EQStream.obj : error LNK2019: unresolved external symbol "private: __thiscall EQChatPacket::EQChatPacket(unsigned char const *,unsigned int)" (??0EQChatPacket@@AAE@PBEI@Z) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(unsigned char const *,unsigned int)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PBEI@Z)
EQStream.obj : error LNK2019: unresolved external symbol "private: __thiscall EQZonePacket::EQZonePacket(unsigned char const *,unsigned int)" (??0EQZonePacket@@AAE@PBEI@Z) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(unsigned char const *,unsigned int)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PBEI@Z)
EQStream.obj : error LNK2019: unresolved external symbol "private: __thiscall EQWorldPacket::EQWorldPacket(unsigned char const *,unsigned int)" (??0EQWorldPacket@@AAE@PBEI@Z) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(unsigned char const *,unsigned int)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PBEI@Z)
EQStream.obj : error LNK2019: unresolved external symbol "private: __thiscall EQLoginPacket::EQLoginPacket(unsigned char const *,unsigned int)" (??0EQLoginPacket@@AAE@PBEI@Z) referenced in function "protected: class EQApplicationPacket * __thiscall EQStream::MakeApplicationPacket(unsigned char const *,unsigned int)" (?MakeApplicationPacket@EQStream@@IAEPAVEQApplicat ionPacket@@PBEI@Z)


(Abbrieviated version of error, Complete error list can be seen at http://eqemu.sesmar.net/errorlog.txt)

I recently had to reformat my C Drive and reinstall windows. Before doing the reformat I was able to compile both 0.6.2 and 0.6.3, now I cannot even get these versions to compile in VS 2003. I am wondering is I have missed some settings somewhere that I have forgot about. I have read everything on the Wiki for compiling under VS 2005 Express, and have tried compiling using Visual Studio 2005 Professional as well with the same results. I have also read all the Tutorials on compiling under Visual Studio 2003 with no luck. Thank you for any help you can provide.

fathernitwit
01-10-2006, 02:55 AM
sounds like files are missing from your project. You need logsys.cpp and EQ*Packet.cpp in it. I will fix this in cvs.

sesmar
01-10-2006, 03:34 AM
Thank you for your quick response. I will try recompiling once I get the needed files and let you know how it goes.

sesmar
01-10-2006, 04:28 AM
I looked in my source folder and I was able to find both files

EQPacket.cpp
logsys.cpp

In the common folder.

Doodman
01-10-2006, 05:40 AM
You will need all the EQ*Packet.cpp files:
EQChatPacket.cpp
EQLoginPacket.cpp
EQMailPacket.cpp
EQPacket.cpp
EQWorldPacket.cpp
EQZonePacket.cpp

And, by the looks of your logs:
opcodemgr.cpp

sesmar
01-10-2006, 06:13 AM
I have checked and have all of these files.

However, I do not believe it to be a problem with missing files as I would not have made it passed the compile stage of the build. The errors I am getting are during the linking stage. After doing a little searching I have found that the problem could be due to Library Dependencies. If you goto Project->Properties.

On this window you click on:
Configuration Properties->Linker->Input: under Additional Dependencies I have:

odbc32.lib
odbccp32.lib
wsock32.lib
zlib.lib
mysqlclient.lib

listed. Are these all that are required or am I missing some? Thank you for your help so far.

sesmar
01-10-2006, 01:16 PM
Well, after double checking all the settings and checking all the install paths for MySql, Perl, and zLib I have been able to get the source from 0.6.2 and 0.6.3 to compile again. Once I was able to compile these two I compared the project settings for the Zone Project from 0.6.3 to the settings in the 0.6.4 Source and made sure everything was the same ( which I had to make a few corrections to make sure it all matched up ). However I am still not able to get version 0.6.4 to compile for me.

Also after doing a lot of searching on the internet for similar problems I am fairly certain it is a linking error and not a compile error. I seems that I am missing some .lib in my dependencies, however, I am unable to pin point the problem.

Once again thank you for any help you can provide.

fathernitwit
01-10-2006, 01:49 PM
yes, it is a linking error. This can happen from missing .cpp/.obj files or from missing libs. These are from missing .cpp files.

sesmar
01-11-2006, 02:37 AM
I have also tried pulling the latest code from the Development Branch. This source gives me the same errors as the source downloaded from the download page.

As for missing .cpp files, I have checked for all the files suggested and I am not missing any of them.

rojadruid
01-11-2006, 06:42 AM
I have also tried pulling the latest code from the Development Branch. This source gives me the same errors as the source downloaded from the download page.

As for missing .cpp files, I have checked for all the files suggested and I am not missing any of them.

My one question would be is: Are the "paths" in the code or compiler that look for where those files are are correct.

This is only a guess as I have not done computer programming in about 15 years and am no longer wise in the ways that compilers request %PATH% information.

killhand
01-11-2006, 07:33 AM
Maybe is nmake.exe what you are missing? i can compile perfect in VS.net 2003.Will check when i get at home and post my configuration.

sesmar
01-11-2006, 08:35 AM
If you are able to compile do you think you could post your source somewhere I can download it. That would make things a lot easier for me.

sesmar
01-12-2006, 05:43 AM
I have tried again compiling the code using the newest source (posted today). I am still getting the same errors.

I have posted the Build Log from the compiler, hopefully this will help find the problem that I am having.

http://eqemu.sesmar.net/BuildLog.htm

Once again thank you for any help you can provide.

killhand
01-12-2006, 06:39 AM
I always pull the source from the development branch of CVS, pulled it today again and sucessfully compiled. Dont know what your problem can be, sorry.

fathernitwit
01-12-2006, 01:05 PM
ok, for the fourth time... YOU ARE FREAKIN MISSING THOSE FILES LISTED ABOVE FROM YOUR PROJECT. If you refuse to listen to me, then how do you plan to fix your problem... I tend to know what im talking about....

sesmar
01-13-2006, 12:49 AM
I am sorry for the misunderstanding. I was under the impression that you where saying that these files were missing from the source code (as in not there at all) not missing from project itself. I have now added all of these files to the source code plus, after realizing what it was you were telling me, I compared it to 0.6.3 and found I was also missing perl_perlpacket.cpp. The code now successfully compiles for me. Once again, Thank you all very much for all of your help ESP FNW as I know your time is valuable to you and this project. Thanks