Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 09-02-2012, 06:41 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default Windows Binary Compiling Guide

Ok, compiling has become a nightmare for most of our Windows users and I would like to make a step forward in making the process as painless as possible.

How to compile your own binaries...

Pre-requisites:

Windows Compiler: - This is needed to compile code into an executable binary (.exe) which will result in World.exe/Zone.exe/Chatserver.exe/queryserv.exe and eqemusharemem.dll
Note: Visual Studio is made for several language and project types. You will really only need the C++ environment so if you get asked what part of the applications you want to install or setup you can keep this in mind.

SVN:
TortoiseSVN Download - This will be needed to check out the source code. You can check out the source code at this link:

Accompanied Software Version (Not Required, but listed here to pair with the Perl versions)

32-Bit Compiles - Perl 5.12 Download
64-Bit Compiles - Perl 5.14 Download

Simplified Howto:
  • I made quite a few SVN changes for VS2010 and spent 5-6 hours getting things cleaned up and working nice so that people don't have a hell of a hard time trying to get binaries compiled for EQEmulator, so this should be quite easy.

* Assuming you have VS2010 installed right now

1) Checking out Source Code:
http://projecteqemu.googlecode.com/svn/trunk/
For those not familiar with checking out source code to a folder: CLICK HERE

2) Open the solution:

Open up EQEmuServer\Server10.sln

3) Choose your configuration:


  • You will need to select the appropriate configuration per the architecture type. So for example if you are going to compile 32-bit Bots you will need to select Win32 and ReleaseBots
  • Go up to the toolbar -> Build -> Compile. The build will start and take a few minutes to complete
  • Once your compile is complete you should be able to find your binaries located under folder Build for x86 and folder x64 for x64.

Done! It was that simple! You can thank me later... Or not whatever I don't care LOL



* Visual Studio 08 - Not recommended, but can still use (Perl 5.12) x84 (32-bit)

Tools -> Options -> VC++ Directories -> Show Directories for: Include Files:

Make the following entries in the same order:

../perl_x86/CORE
../zlib_x86/include
../mysql_x86/include

Tools -> Options -> VC++ Directories -> Show Directories for: Library Files:

Make the following entries in the same order:

../perl_x86/CORE
../zlib_x86/lib
../mysql_x86/lib

Choose your configuration build and build your solution.

Other Details:

Includes & Libraries - These are needed to supplement the source code with instructions on how to use Perl/mysql/zlib etc.

Traditionally, this is something that you would have to set up in Visual Studio before you would be able to compile EQEmulator successfully. As of last commit all you will need to do is make sure you have the following in your EQEmu SVN folder:

mysql
perl
zlib - x64 and x86 zlib included through the SVN

*Note: You can use whatever version of Perl you want, but the SVN will be already setup for 5.12 in 32-bit and 5.14 in 64-bit. You can set your perlxxx.lib in (Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies), you typically set these on World and Zone. You will have to have the library to match the version that you compile with.

So for example, let's say you downloaded Perl 5.15 and you wanted to replace 5.14, you will need to go into configuration properties listed above to change it to perl515.lib and you will have to add the library folder to the project in the same file structure.

Just for reference, this is where you setup your library and include paths VS2010: (You shouldn't have to change these in VS2010 if you put them in the EQEmu SVN folder mentioned above)

Includes: Properties -> Configuration Properties -> C/C++ -> General



Libraries: Properties -> Configuration Properties -> Linker -> General


Last edited by Akkadius; 09-15-2012 at 06:38 PM..
Reply With Quote
  #2  
Old 09-03-2012, 01:53 AM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

Bump, this should be good to go now. Let me know if I missed things.
Reply With Quote
  #3  
Old 09-03-2012, 06:51 AM
wolfwalkereci
Discordant
 
Join Date: Dec 2005
Posts: 435
Default

Thanks for doing this Akkadius. I went ahead and installed VS2010 again and it compiled right away without having to do anything.

One note, for the life of me I can not get it to compile using VS2008 at all anymore but hell with VS2010 being a simple "open project -> build" I dont see that as a serious issue.
Reply With Quote
  #4  
Old 09-03-2012, 05:31 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 965
Default

Choosing Release x64 leaves the QueryServ project in Win32, and it will fail to build. Changing that to x64 prior to building and it all works. Switched back to Release and set it to Win32 and that one built fine.

No I just need to dig Perl 5.10 out of my archive to install on my 32-bit test server.
Reply With Quote
  #5  
Old 09-03-2012, 06:02 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

Quote:
Originally Posted by sorvani View Post
Choosing Release x64 leaves the QueryServ project in Win32, and it will fail to build. Changing that to x64 prior to building and it all works. Switched back to Release and set it to Win32 and that one built fine.
You need to have the Active Solution platform as x64, not as Win32 when you put the configuration to a x64 option.



Quote:
Originally Posted by sorvani View Post
No I just need to dig Perl 5.10 out of my archive to install on my 32-bit test server.
You can change this as you like as mentioned above, this is just what's always been built under the source for 32-bit
Reply With Quote
  #6  
Old 09-03-2012, 09:29 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 965
Default

I know to change the platform, was just mentioning that when I opened the clean SVN solution and switched from Release to Release x64 all of the projects switched to x64 except queryserv, in case there was a setting you missed. It is possible the settings were left over from a previous compile of a different solution. I do not recall the last server type I built from my Parallels Win7 VM.
Reply With Quote
  #7  
Old 09-04-2012, 11:53 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

Fixed VS08 compiles. See first post on accompanied Perl version downloads.
Reply With Quote
  #8  
Old 09-05-2012, 06:53 PM
Robregen
Developer
 
Join Date: May 2011
Posts: 108
Default

hmmm I just tried to compile the 32 bit version using VS2010 and I get this error:

eqemuserver\perl_x86\core\cop.h(13: fatal error C1083: Cannot open include file: 'mydtrace.h': No such file or directory

I do have perl 5.12 installed.
Reply With Quote
  #9  
Old 09-05-2012, 07:41 PM
wolfwalkereci
Discordant
 
Join Date: Dec 2005
Posts: 435
Default

Ran into it earlier, if you already have perl 5.12 installed you can change cop.h until its added to the svn.
#include "mydtrace.h" --> #include "c:/perl/lib/core/mydtrace.h"
I just changed world and zone Additional Dependencies perl512.lib to point to my install and it compiled fine.

or you can copy mydtrace.h to source\trunk\EQEmuServer\perl_x86\CORE and it may/may not work from there. My second compile doing that did work but you never know.
Reply With Quote
  #10  
Old 09-05-2012, 08:08 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

I'll fix it when iI get home. not every Perl file made it obviously
Reply With Quote
  #11  
Old 09-05-2012, 09:56 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

This is fixed. Update your SVN and try again
Reply With Quote
  #12  
Old 09-06-2012, 09:17 AM
werebat's Avatar
werebat
Hill Giant
 
Join Date: Oct 2010
Posts: 143
Default

Installed VS10, ran it with 32bit compile on Perl 5.10 and it worked fine. I thought I needed 5.12 but apparently it doesnt. Cool.

Summary
=======
Win 7 Ultimate 64bit
VC++ 2010 Express
Perl 5.10
Successful 32bit compile
Reply With Quote
  #13  
Old 09-06-2012, 01:28 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 965
Default

With the current SVN you do not need ANY version of Perl or MySQL actually installed on the computer that is compiling the executables.

You will need to install Perl and MySQL on the computer that will be actually running the executables. I never tried to run the executables on a system with running a different version of perl than it was compiled with, so it might work.

The version of MySQL on the server running the executables is does not matter. I have used the current 5.6.X test builds successfully with something compiled with 5.1 libraries.
Reply With Quote
  #14  
Old 09-11-2012, 09:34 PM
wolfwalkereci
Discordant
 
Join Date: Dec 2005
Posts: 435
Default

Looks like http://www.activestate.com is only providing perl 5.16 unless you sign up for their business license.
http://strawberryperl.com/releases.html has older ones you can still get if needed.
Only noticed this today when someone asked me why my mirror of the install guide with links to download perl didnt work.
-
Reply With Quote
  #15  
Old 09-11-2012, 09:49 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

Quote:
Originally Posted by wolfwalkereci View Post
Looks like http://www.activestate.com is only providing perl 5.16 unless you sign up for their business license.
http://strawberryperl.com/releases.html has older ones you can still get if needed.
Only noticed this today when someone asked me why my mirror of the install guide with links to download perl didnt work.
-
Wow there's already broken links. I'll have to make sure that these are fixed and host them somewhere reliable.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 08:05 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3