View Single Post
  #1  
Old 08-22-2004, 06:44 AM
Cisyouc
Demi-God
 
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
Default Slightly Outdated :: HOWTO: Compile EQEMu on VC++6

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:
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:

You DO have Visual C++ 6 and you can move on. However, if you see:

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:

However, the Visual Studio logo (the one you want) looks like this:

------------------------------------------------------
Configuring the Project
Go to Start>Run and type in "C:\EQEMu\Source\EMuShareMem\EMuShareMem.dsw"


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:

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) to C:\EQEMu\perl

Now install IO::Scalar using a snip from Lurker_005's Guide to the Perl Quest System.
Quote:
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 (save with .exe extension). Copy it into your perl\bin directory. Then type the following in a DOS window:

Code:
perl -MCPAN -e shell
When asked if you want to configure it manually, say "no". Once everything is done there type in:

Code:
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:

Code:
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.

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 (199 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.
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.
Reply With Quote