EQEmu DEV-C++ Howto (updated for 5.5DR1)
Here is a HOWTO to get EQEmu 5.3DR2 (01/01/2004 version) to compile
with Bloodshed Dev-C++ / mingw. http://www.rama.demon.co.uk/EQEmu-Dev-C++.zip Most of the changes were trivial. The two biggest headaches were: 1) Dev-C++ won't by default link against the mysql libraries I have included instructions on how to create a libmysql.a 2) vsnprintf would SIGSEGV every time. In the end I found a portable version of vsnprintf written in C which I have included in the zip, and included in the HOWTO details of where to put #ifdefs to use this version when compiling under Dev-C++. I have also included .dev files for Emusharemem/world and zone (similar to VS .NET's .SLN fies). I have only tested briefly under minilogin and it seems stable enough. EDIT: The following added for 5.5DR1 The source tree for 5.5DR1 with Dev-C++ changes already made is available here: www.rama.demon.co.uk/5.5DR1DevCPPSource.zip I found out why vsnprintf wasn't working, so the 5.5DR1 zip no longer uses the 'portable vsnprintf', rather there are changes to allow the standard vsnprintf to work. As a result, any bugs (such as non-functioning #npcspawn add) relating to the use of the portable vsnprintf should be gone. |
Great contribution!!! 8)
|
this has just made my day maaaaan thank you!
|
Quote:
|
well sadly it didn't compile right =(
here are the errors i get: 86 C:\eqemu\5.3dr2dev\common\debug.h In file included from ../common/debug.h 1 C:\eqemu\5.3dr2dev\EMuShareMem\Doors.cpp from Doors.cpp C:\eqemu\5.3dr2dev\common\Portable_vsnprintf.h [Warning] In function `int portable_vsnprintf(char*,: 3 C:\eqemu\5.3dr2dev\common\Portable_vsnprintf.h previous declaration of `int 225 C:\Dev-Cpp\include\stdio.h conflicts with new declaration with C linkage C:\eqemu\5.3dr2dev\EMuShareMem\Makefile.win [Build Error] [Doors.o] Error 1 |
Thanks Shadow-Wolf. Give me a day or two and I will see if I can figure out what is wrong. BTW can you give me a link to the EQEmu source that you are using ?
|
well im using the source from shawns cvs
http://shawn319.eqemulator.net/cvs/ no changes made to it except for the ones you said to add |
Don't add the
Code:
#ifdef __MINGW32__ |
Very nice job! Should make quite a few people happy.
Dang! that makes an F#$%ing HUGE zone.exe! First a note, I updated to mingw 3.3.1 In world\console.cpp Code:
if defined(WIN32) && !defined(__MINGW32__) I had to add -D_GLIBCPP_USE_C99 -D_GLIBCPP_USE_C99_DYNAMIC to the dev files. I got Code:
Warning c:\SourceCode\EQEmu-0.5.3-DR1\world\Warning For perl support: c:\dev-cpp\bin\reimp -d c:\perl\lib\core\perl58.lib c:\dev-cpp\bin\dlltool --input-def perl58.def --dllname perl58.dll --output-lib c:\dev-cpp\lib\perl58.a -k and the beginning of zone_perl.dev Code:
[Project] FYI The changes didn't have an effect on compiling in MSVC++6 :) Not that they should have. |
Any developers using bloodshed want to join the dev team ?
|
Well, nice job Tertiary, amazing !
I compiled without real trouble using your fixes, with dev-cpp 4.9.8.0. things i did : --added Portable_vsnprintf.h/cpp to the project files --changed -lzlib to -lzlib1 (i used the pre-compiled zlib1.dll from www.zlib.org) --adapted the directories to my configuration Thank you for porting eqemu to BloodShed, that's great of you, nice to have it compiling on a free w32 compiler ! :) ps : zone.exe weights 10 |
Quote:
project -> project options -> compiler [tab] -> linker -> generate debugging information = yes reduced zone.exe to 2 |
ok, i got eqmemshare.dll compiled nothing bad so far but when i try to compile world.exe i get these errors:
console.cpp C:\eqemu\5.3dr2dev\world\console.cpp In member function `void Console::ProcessCommand(const char*)': 682 C:\eqemu\5.3dr2dev\world\console.cpp parse error before `(' token 686 C:\eqemu\5.3dr2dev\world\console.cpp `Ver_name' undeclared (first use this function) (Each undeclared identifier is reported only once for each 687 C:\eqemu\5.3dr2dev\world\console.cpp `Ver_build' undeclared (first use this function) 687 C:\eqemu\5.3dr2dev\world\console.cpp `ultoa' undeclared (first use this function) 688 C:\eqemu\5.3dr2dev\world\console.cpp `Ver_min' undeclared (first use this function) 689 C:\eqemu\5.3dr2dev\world\console.cpp `Ver_maj' undeclared (first use this function) 690 C:\eqemu\5.3dr2dev\world\console.cpp `Ver_pid' undeclared (first use this function) 34 C:\eqemu\5.3dr2dev\world\console.cpp:691 #elif without #if 694 C:\eqemu\5.3dr2dev\world\console.cpp `GetOS' undeclared (first use this function) 34 C:\eqemu\5.3dr2dev\world\console.cpp:695 #else without #if 34 C:\eqemu\5.3dr2dev\world\console.cpp:697 #endif without #if 749 C:\eqemu\5.3dr2dev\world\console.cpp jump to case label 385 C:\eqemu\5.3dr2dev\world\console.cpp crosses initialization of `Seperator sep' C:\eqemu\5.3dr2dev\world\Makefile.win [Build Error] [console.o] Error 1 zone.exe compiled fine except this error \Dev-Cpp\Bin\..\lib\gcc-lib\mingw32\3.2\..\..\..\..\mingw32\bin\ld.exe C:\eqemu\5.3dr2dev\zone\C cannot find -lzlib |
For the first part of your problem, correct the typo that Lurker pointed out. In world\console.cpp, add a # to the front of
Code:
if defined(WIN32) && !defined(__MINGW32__) I do have a problem of my own, though, that maybe someone could help with. Apparently I'm not installing or using reimp right. When I try to run World.exe or Boot5Zones, I get this error: Quote:
Oh, and great package, Tertiary! |
yay got it working now you rock tertiary!(and dingo01
for his bit of help) |
All times are GMT -4. The time now is 04:32 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.