PDA

View Full Version : Compilation errors (rev 2088)


Kalastrom
12-10-2011, 10:43 PM
I haven't svn updated and recompiled in a couple days, but from what I can tell a revision or two ago in several files (I haven't found them all yet) the macro definition for windows was changed from _WIN32 to _WINDOWS which completely breaks compilation on Windows 7 x64 under Visual Studio 2010 Pro targeting the x32 debug build.

I'm currently going through and fixing this in my source to see if anything else is broken.

Edit 1: Turns out this modification was done approximately 170 times. Source compiled fine after a Find and Replace All. :)

Edit 2: Well after the Find and Replace was done the only error I have left are linking errors for World and Zone stating that perl514.lib is missing. Was there a perl upgrade I missed somewhere? lol

joligario
12-10-2011, 10:56 PM
You can find the 2 declarations of 5.14 and change them to whatever version you use.

Kalastrom
12-10-2011, 11:08 PM
Thank you very much, I had just found the post on that and where it was hiding in the source. :)

Edit #3 for the night: And now it's barfing with unresolved external symbols:
"public: void __thiscall QueryServConnection::SetConnection(class EmuTCPConnection *)"
(?SetConnection@QueryServConnection@@QAEXPAVEmuTCP Connection@@@Z) referenced in function "public: bool __thiscall Console::Process(void)"
(?Process@Console@@QAE_NXZ) \trunk\EQEmuServer\world\console.obj World

"public: bool __thiscall QueryServConnection::Process(void)"
(?Process@QueryServConnection@@QAE_NXZ) referenced in function _main \trunk\EQEmuServer\world\net.obj World

"public: __thiscall QueryServConnection::QueryServConnection(void)"
(??0QueryServConnection@@QAE@XZ) referenced in function "void __cdecl `dynamic initializer for 'QSLink''(void)" (??__EQSLink@@YAXXZ)
\trunk\EQEmuServer\world\net.obj World


"public: bool __thiscall QueryServConnection::SendPacket(class ServerPacket *)"
(?SendPacket@QueryServConnection@@QAE_NPAVServerPa cket@@@Z) referenced in function "public: bool __thiscall ZoneServer::Process(void)" (?Process@ZoneServer@@QAE_NXZ)
\trunk\EQEmuServer\world\zoneserver.obj World


Odds are world is trying to link to the new queryserver but I was under the impression that wasn't in use yet, plus I can't get it to add properly to my solution, it keeps showing up in the project list as 'ucs' which sucks because I've already go that entry in the list. lol

Kalastrom
12-12-2011, 06:08 PM
Okay, got the linking errors fixed. I didn't see the new Server10 solution, which I rebuilt all my settings and stuff in. Working fine now.

dark_fusion
01-18-2012, 09:10 PM
Kalastrom, what exactly did you do to fix those linker error messages? I cant seem to get past those.

nosfentora
01-20-2012, 04:26 PM
Think I'm having the same problem. Been a few months since I last pulled and compiled. Had kept VS2008 on just to compile EQEmu, but have now switched completely to 2010.

Specs:
Machine running EQEmu
Server 2008, SP2
MySQL 5.5.19 CE x32
Perl 5.14 x32

Machine Compiling EQEmu
Win 7 Ult x64
MySQL is NOT installed on this machine
Perl is NOT installed on this machine

Building ReleaseBots Win32

Clean pull of EQEmu Rev 2097 (last rev i had was 1600 or so)

New dependancy folder containing only:
MySQL include and lib folders copied from MySQL 5.5.19
Perl lib\CORE folder copied from Perl 5.14
ZLib 1.2.5 from https://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib125-dll.zip/download (http://sourceforge.net/projects/libpng/files/zlib/1.2.3/zlib123-dll.zip/download)

Have set all the VC++ Directories to the appropriate paths per this post
http://www.eqemulator.org/forums/showthread.php?t=32980

Compiling throws the following errors:


Error 27 error LNK2019: unresolved external symbol _inflateInit2_ referenced in function "unsigned int __cdecl InflatePacket(unsigned char const *,unsigned int,unsigned char *,unsigned int,bool)" (?InflatePacket@@YAIPBEIPAEI_N@Z) \eqlaunch\packet_functions.obj eqlaunch
Error 25 error LNK2019: unresolved external symbol _inflateEnd referenced in function "unsigned int __cdecl InflatePacket(unsigned char const *,unsigned int,unsigned char *,unsigned int,bool)" (?InflatePacket@@YAIPBEIPAEI_N@Z) \eqlaunch\packet_functions.obj eqlaunch
Error 26 error LNK2019: unresolved external symbol _inflate referenced in function "unsigned int __cdecl InflatePacket(unsigned char const *,unsigned int,unsigned char *,unsigned int,bool)" (?InflatePacket@@YAIPBEIPAEI_N@Z) \eqlaunch\packet_functions.obj eqlaunch
Error 24 error LNK2019: unresolved external symbol _deflateInit_ referenced in function "int __cdecl DeflatePacket(unsigned char const *,int,unsigned char *,int)" (?DeflatePacket@@YAHPBEHPAEH@Z) \eqlaunch\packet_functions.obj eqlaunch
Error 22 error LNK2019: unresolved external symbol _deflateEnd referenced in function "int __cdecl DeflatePacket(unsigned char const *,int,unsigned char *,int)" (?DeflatePacket@@YAHPBEHPAEH@Z) \eqlaunch\packet_functions.obj eqlaunch
Error 23 error LNK2019: unresolved external symbol _deflate referenced in function "int __cdecl DeflatePacket(unsigned char const *,int,unsigned char *,int)" (?DeflatePacket@@YAHPBEHPAEH@Z) \eqlaunch\packet_functions.obj eqlaunch
Error 28 error LNK1120: 6 unresolved externals \Build\eqlaunch.exe eqlaunch



The only thing I can think of is it has to do with ZLIB, but can't figure out what, I'm not a c++ person.

Any idea what i missed?

kalua
01-20-2012, 04:45 PM
Afraid I can't be of much help other than to confirm (based on other threads) that those errors are due to a problem with zlib.

nosfentora
01-20-2012, 04:54 PM
Thanks Kalua, might try a few older versions of ZLIB then and see what happens.

iRFNA
01-20-2012, 05:30 PM
I fixed that error by replacing zdll.exp and zdll.lib in trunk/EQEmuServer/zlib/lib/ with the versions I found in zlib123-dll.zip in its lib folder. I got zlib123-dll.zip from the EQEmu Essentials.rar, which I downloaded from a megaupload link I found on these forums. If you've followed recent events, megaupload just got taken down by the US gov. However, their campaign against file hosting websites appears to be in vain, for I went to hotfile and uploaded zlib123-dll.zip for you (http://hotfile.com/dl/142929027/53796b7/zlib123-dll.zip.html). Or you can find it yourself somewhere probably. Anyway, take that US gov!

nosfentora
01-21-2012, 10:32 AM
Hmmm... tried that and still the same uresolved externals error...

iRFNA
01-21-2012, 04:45 PM
Well, I did also extract the entirety of that zip file to C:\zlib and changed the VC++ directories to reference C:\zlib\include for includes and C:\zlib\lib for libraries. It's just that after that didn't work, I did what I mentioned above. However, this step is in the tutorials so you probably already did it...

nosfentora
01-25-2012, 01:00 PM
I figured out my problem, maybe this will help others.

Secrets pointed out

"Just as a forewarning, perl 5.14 only will work under 64-bit compiles linked with 64-bit perl. I haven't figured out the issue with activeperl and 32-bit yet.

Keep that in mind when making a Perl 5.14 compile."

http://www.eqemulator.org/forums/showthread.php?t=34614&highlight=perl510

I switched MySQL to an x64 build and Perl 5.14 to an x64 build
Also, updated the VC++ Directories to *remove* any reference to ZLib
Deleted my ZLib folder (NOT the one in the EMU Source)

and viola! it compiled and runs!

Haven't had a chance to log in yet, but I've gotten that far at least!