PDA

View Full Version : Slightly Outdated :: HOWTO: Compile EQEMu on VC++6


Cisyouc
08-22-2004, 06:44 AM
In this guide I will show you how to compile EQEMu Source using Visual C++ 6 and the latest source rar/zip. I will not be covering how to operate wincvs as it is covered in other posts.

You will need:
Basic Knowledge of Windows
An Internet Connection
Microsoft Visual C++ 6
Patience
Downloading the Source and Components
You must download the following:
MySQL 4.1 for Windows (MySQL Download Page (http://dev.mysql.com/downloads/mysql/4.1.html))
http://img34.exs.cx/img34/6600/mysql.gif
zlib compiled dll. (Zlib Home (http://www.zlib.org))
http://img34.exs.cx/img34/859/zlib.gif
Latest Source via CVS Dump. (Update: Anonymous CVS is now back up) (Link on IRC MOTD for #EQEMu. Connect to IRC (If IRC App Installed) (irc://irc.eqemulator.net))
Make sure you have the right MySQL Header Versions.
If you wish to use PERL in your zone.exe, you must download and install Perl (ActivePerl Downloads (http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl)) to C:\eqemu\perl

Now do the following:
Extract the SOURCE into: C:\EQEMu\Source\
Extract MySQL into : C:\EQEMu\MySQL\
Extract zLIB into : C:\EQEMu\zlib\
Extract MySQL Includes to : C:\EQEMu\MySQL\
(Optional) Extract Perl Into : C:\EQEMu\perl
------------------------------
Now, open up Microsoft Visual C++ 6, and make sure you are NOT using a '.NET' version by going to Help > About Visual C++...

If you see a screen that looks like:
http://img34.exs.cx/img34/4763/vc6.gif
You DO have Visual C++ 6 and you can move on. However, if you see:
http://img34.exs.cx/img34/842/vcnet.gif
You may NOT have Visual C++ 6. Indicators you do not have VC++6 are:
-Mentioning of the .NET Framework (Blue)
-.NET Logo (Green, see below)
-Year 2003, 2004 or 2005 Mentioned. (Red)

.NET Logo looks like this:
http://img34.exs.cx/img34/5317/vcnetsml.gif
However, the Visual Studio logo (the one you want) looks like this:
http://img34.exs.cx/img34/7623/vc6sml.gif
------------------------------------------------------
Configuring the Project
Go to Start>Run and type in "C:\EQEMu\Source\EMuShareMem\EMuShareMem.dsw"
http://img34.exs.cx/img34/4227/run1.gif

Immediatly, Visual Studio should open with the EMuShareMem.dll project.

Go to Tools > Options...
Click the Directories Tab, and under Include Files, add:

C:\EQEMu\MySQL\include

Now go to Build > Build EMuShareMem.dll

When it is sucessful, you will see this:
http://img34.exs.cx/img34/5282/0error.gif
Next, go to File > Close Workspace, and then File > Open Workspace. Select 'World.dsw' inside of C:\EQEMu\Source\World\ and click Open.

Before building this time, go to Tools > Options...

Next, click the Directories Tab and add these directories in under "Include Files":

C:\EQEMu\mysql\include
C:\EQEMu\zlib
C:\EQEMu\zlib\include

Now under "Show Directories For:" Change the dropdown menu to "Library Files".

Now add to here,

C:\EQEMu\MySQL\lib\opt

Now click OK and go to Build > Build World.exe!

--------------------------------------------------------
Building Zone.exe (no Perl)
Go to Start > Run
Type in "C:\EQEMu\Source\zone\zone.dsw"
Click OK

Go to Tools > Options...

Verify that the following directories are listed under "Include Files" in the Directories Tab:

C:\EQEMu\mysql\include
C:\EQEMu\zlib
C:\EQEMu\zlib\include

If they are not, add them!

Now Click "Include Files" And Drop Down to "Library Files" and verify that the following is in there:

C:\EQEMu\MySQL\lib\opt

If it is not, add it!

Now, you may go to Build > Build Zone.exe
------------------------------------------------
Building Zone.exe WITH Perl

First, download and install ActivePerl (ActivePerl Downloads (http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl)) to C:\EQEMu\perl

Now install IO::Scalar using a snip from Lurker_005's Guide to the Perl Quest System.
Installing Perl

Download Perl 5.8, Then install using the default settings for everything. Now reboot so path changes take affect. Congratulations, Perl is installed.

Installing IO::Scalar
If you don't already have it, download nmake.exe (http://www-124.ibm.com/developerworks/oss/cvs/jsp/~checkout~/jspformatbean2/Attic/NMAKE.EXE?rev=1.1.1.1&content-type=application/exe) (save with .exe extension). Copy it into your perl\bin directory. Then type the following in a DOS window:

perl -MCPAN -e shell

When asked if you want to configure it manually, say "no". Once everything is done there type in:

install IO::Scalar

Once complete it should say -- install OK.

Problems
If perl isn't installed properly the zone windows will disapear after starting up. If you followed all the above steps correctly, make sure you have a copy of "Perl58.dll" in your "C:\Perl\bin" directory. If there is a copy there, search your computer for all other copies of it and delete them. Also note it is Perl58, not 56.

To test if IO::Scalars is installed type the following in a DOS window:

perl -MIO::Scalar -e "print 'Installed'"

If you get an error it isn't working. Make sure you installed it correctly, if you didn't delete the following files in "C:\Perl\site\lib\IO" and then rerun "install IO::Scalar":
Scalar.pm
Scalar.pm.html
ScalarArray.pm


Last Edited by Monrezz on 16th February 2004.

Next,

Go to Start > Run
Type in "C:\EQEMu\Source\zone\zone.dsw"
Click OK

Now, click OKAY and go to Build > Configurations.

Click on Add... and make:

Configuration: Perl
Copy Settings From: Zone - Win32 Release
Platform: Win32

Click OK, and then Close.

Next, go to Build > Set Active Configuration

Select Zone - Win32 Perl

Click OK.

Go to Tools > Options...

Verify that the following directories are listed under "Include Files" in the Directories Tab:

C:\EQEMu\mysql\include
C:\EQEMu\zlib
C:\EQEMu\zlib\include

If they are not, add them!

Now Click "Include Files" And Drop Down to "Library Files" and verify that the following is in there:

C:\EQEMu\MySQL\lib\opt

If it is not, add it!

Now, go to Project > Settings...

Click the C/C++ Tab and Verify the Category is GENERAL.
http://img34.exs.cx/img34/4259/projset.gif
Under Preprocessor Definitions, ADD (Do NOT replace), the following:

,EMBPERL,EMBPERL_PLUGIN

Now switch the Category to Preprocessor and add to the "Additional Include Directories",

c:\eqemu\perl\lib\core

Next, Click the Link tab and Change the Category to Input

Under "Additional Library Path", Add:

c:\eqemu\perl\lib\core

Now click okay, and go to Project > Add to Project > Files...

In "File Name" Type:
emb*.* and hit enter.

Select all files that still are showing and click OPEN.

Now go to Build > Build Zone.exe!


--------------------------------------------------------------
Tested under 2 Computers, Windows XP Home, Microsoft Visual C++ 6.0 (1998) on both.

If you feel I missed something or was unclear about something post here, but, again, I won't be supporting this thread as I don't want to be flooded with newbie tells =D.

Cutter
04-20-2005, 05:30 AM
Is this tutorial still correct Cis? and if it isnt can or do you mind updating it please and how to get to the "main" branch of the cvs of the source i believe that would be 6.0 DR2 not sure though..

i dont know the status of DR3 myself... its been awhile and lots has changed so im trying to keep up but do new stuff

Thanks in advance

arigo
05-31-2005, 07:16 PM
Why are my compiled executes like 3x larger than the precompiled version you can download on sourceforge? I disabled debug and everything, It's annoying. My compiled version also uses more bandwidth per client.

Cisyouc
06-02-2005, 05:23 AM
Why are my compiled executes like 3x larger than the precompiled version you can download on sourceforge? I disabled debug and everything, It's annoying. My compiled version also uses more bandwidth per client.It sounds like when you're compiling your including alot more features into your compiles than what comes in the precompiles, assuming that debug really is shut off..I'd check that again...

arigo
06-02-2005, 06:24 AM
It sounds like when you're compiling your including alot more features into your compiles than what comes in the precompiles, assuming that debug really is shut off..I'd check that again...
I am using release as active cofiguration. As far as checking into making sure debug is shut off, where do I do this? I went into the project settings and set debug info to none.

Cisyouc
06-02-2005, 06:55 AM
The first thing to check is to see, under preprocessor definitions (see tutorial for where that is), that EQDEBUG=0.

arigo
06-02-2005, 07:01 AM
The first thing to check is to see, under preprocessor definitions (see tutorial for where that is), that EQDEBUG=0.
Well, that wasn't in my preprocessor definitions. However, "NDEBUG" /D was. I added EQDEBUG=0 and went to compile, and my execute came out same size.

Edit: actually "NDEBUG" /D was was a part of common options. My bad. Still, EQDEBUG=0 isn't effective.

Cisyouc
06-02-2005, 02:41 PM
Well, that wasn't in my preprocessor definitions. However, "NDEBUG" /D was. I added EQDEBUG=0 and went to compile, and my execute came out same size.

Edit: actually "NDEBUG" /D was was a part of common options. My bad. Still, EQDEBUG=0 isn't effective.Still, the most likely suspect is the fact that you probably have more things defined than the precompiles, or the precompiles are of an earlier version.