Wytter Report post Posted May 8, 2005 Here's a fix for people who run into the problem with: undefined reference to _imp_xmlFree(); When linking the client. Open $DEVCPP/libxml/xmlexports.h Edit every line that says: #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) And change it to: #if !defined(LIBXML_STATIC) And press recompile all. At least that worked for me. Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 The first post made it all sound fairly plain sailing...... but: 1.2 TortoiseCVS Download (4.7 MB)Go to the directory where you want to checkout the source, then right click in the explorer window, and select "CVS Checkout", and specify the CVSROOT- :pserver:anonymous@cvs.elc.berlios.de:/cvsroot/elc the specify the module- elc Then press OK to checkout the source. This worked a treat! 2. Getting and Installing the libraries 2.2 BLOODSHED DEV-C++ Open Dev-Cpp, and go to Tools->Check for Updates/Packages, and download select versions of the following packages: libxml2-2.6.19.win32 OggVorbis-win32sdk-1.0.1 OpenAL SDK (version 1.0) iconv-1.9.1.win32 SDL-devel-1.2.8-VC6 SDL_net-devel-1.2.5-VC6 You may need to switch mirrors to get all of the packages. Dev-Cpp will install all of the files to their correct directories. Compiler downloaded fine, but I could not find libxml2 or iconv in the packages. Are they under another name? And the SDL packages don't have either 'devel' or 'VC6' in the names. Correct or not? 3. Compiling and Installing The Eternal Lands Client 3.2 BLOODSHED DEV-C++ On Dev-Cpp, just create a new C project with all of the files, except cal3dwrap.c and cal3dwrap.h. Then, you can just hit compile, or you can use the default Makefile by opening Project->Project Options, select Makefile, tick off "Use Custom Makefile", click the button on the right (Load), and select Makefile.win, THEN hit compile. Neither of these worked. Hitting compile produces thousands of errors which I'm going to have a look at to see if there is a common thread to them. Trying to use the Makefile stops immediately with the error "No rule to make target 3d_objects.c. And there is no 'load' button, which suggests that the guide was done with a different version of dev-cpp! :-( Regards Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 OK - I've got a bit further. Bits missing from the info above: add two include directories C:\Dev-Cpp\include\SDL C:\Dev-Cpp\include\al (this assumes where you installed dev-cpp - the above is the default) I downloaded the iconv and libxml2 zips pointed to in the MSC section and manualy copied the contents into the dec-cpp directories. I now have a stopper that the compiler doesnt recognise the token GLsizeiptrARB which is in gl_init.h line 51. Where is this defined please? Regards Share this post Link to post Share on other sites
Wytter Report post Posted June 18, 2005 You will need a new glext.h - replace the old one in the include/GL/ folder Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 You will need a new glext.h - replace the old one in the include/GL/ folder 171671[/snapback] Thanks for that. After a search on these foums I found a pointer to where this file resides and we move on! Minor thing: In function init_stuff the library call chdir() has an implicit declaration. Next we have: .drecrtve /DEFAULTLIB: "uuid.lib" unrecognised This appear to be from a file elc.dsp. I have no idea what it is supposed to be doing! Finaly I get *lots* of linker errors - most of which seem to be from ogg/vorbis, so I'd hazard a guess that a library was left out of the first post. Regards Share this post Link to post Share on other sites
Wytter Report post Posted June 18, 2005 Are you sure that the libraries are in their right directory? They need to be in $DEVCPP/lib/ Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 Are you sure that the libraries are in their right directory? They need to be in $DEVCPP/lib/ 171693[/snapback] Yes - they were. However the first post omits two libraries from the link list: -vorbis and -logg. I am now down to missing _imp_xmlFree somewhere. I see some comments in this forum about it, bit no clear resolution. Regards. Share this post Link to post Share on other sites
Wytter Report post Posted June 18, 2005 (edited) Try with just using #define _imp_xmlFree(var) free(var) Should work fine Edited June 18, 2005 by Wytter Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 Try with just using #define _imp_xmlFree(var) free(var) Should work fine 171710[/snapback] Thanks for the respoinses so far! Where should this be placed? I have now got the impression that uuid.lib is *only* available with the MS SDK platform. Unless someone knows otherwise. Regards Share this post Link to post Share on other sites
Wytter Report post Posted June 18, 2005 The easiest way would be to add the following to the compile flags: -D"_imp_xmlFree(var) free(var)" Share this post Link to post Share on other sites
Sistema Report post Posted June 18, 2005 lol, just use MS Visual C++ I can't get mine to compile with Dev-Cpp, but works out perfectly on MS's one Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 lol, just use MS Visual C++I can't get mine to compile with Dev-Cpp, but works out perfectly on MS's one 171726[/snapback] Ah good! You will buy my copy? <grin> Regards Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 The easiest way would be to add the following to the compile flags: -D"_imp_xmlFree(var) free(var)" 171722[/snapback] Neat idea. But is doesn't work! :-( Regards Share this post Link to post Share on other sites
darkst Report post Posted June 18, 2005 Another thing left out of the first post:- Add elc.ico to the resource directory. Regards Share this post Link to post Share on other sites
Wytter Report post Posted June 19, 2005 (edited) Then try adding it to global.h - that is the: #define _imp_xmlFree(var) free(var) Remember to click recompile all. Edited June 19, 2005 by Wytter Share this post Link to post Share on other sites
Lachesis Report post Posted July 6, 2005 (edited) Finally I tried this guide myself, and I discovered quite some problems. I'll just list them here for now: Both WinCVS and TortoiseCVS require a recent version of Microsoft ® Internet Explorer ®. If you are using them on plain Windows ® 98 with IE 4.0, you have to upgrade IE first. The makefile shipped with ELC relies on dev-cpp being installed in c:\dev-cpp\. We should tell users this. dev-dpp silently overwrites Makefile.win when it generates a Makefile! Before you can install new packages you have to install a new mirrors list and restart the updates dialog. The package names are different in dev-cpp than in VC++! I'm not sure if every user can translate "libsdl" into "Simple Direct Media Layer" SDL 1.2.5 is not sufficient anymore, because it lacks mouse wheel support. I used version 1.2.8 and it worked. There is no libxml package for dev-cpp! It has to be manually downloaded from xmlsoft.com and the lib/ and include/ dirs copied to c:\dev-cpp Dev-Cpp places some headers in subdirectories, examples: al/, sdl/, gl/, ogg/. In order to make directives like #include <al.h> work, these subdirectories have to be specified using the -I compiler switch the -D compiler switches are not up-to-date. -DWINDOWS -DELC -DNOTEPAD should work. Though it has been mentioned at various places in this forum, it is probably a good idea to mention that you have to get a recent copy of glext.h from SGI It is not possible to link elc.exe on Windows 98 because command.com fails on executing commands with more than 644 characters. Yuck! -- Tricked it using *.o now, but I get lots of unresolved references. Added -lvorbis, -logg and -lvorbisenc and only oggpack_read and oggpack_write seem to remain (somehow output redirection doesn't work with gcc.exe). Edited July 6, 2005 by Lachesis Share this post Link to post Share on other sites
Gen_Axis Report post Posted July 11, 2005 Little problem: I'm using Dev-Cpp there was problem with X11/Xlib.h (+others) files missing i downloaded em from sourceforge but then it found while compilation tkIntXlibDecls.h is missing again d/loaded it from sourceforge just now i have tons of errors in that file while compilation (tried couple versions of file) anyone got idea why ? and how to fix it ? BTW. where i can show to someone what i have done, while i'm not part of any dev team, but made some things (not much, f.ex. in-game different language chooser at client start and some translations) that could be perhaps usefull some day... ?? Share this post Link to post Share on other sites
ttlanhil Report post Posted July 11, 2005 (edited) 3.1 MICROSOFT VISUAL C++<snip> This part is very important if you are using Visual Studio.NET. Open global.h and type #define inline __inline Put that after the line: #define __GLOBAL_H__ 155865[/snapback] we got this fixed. no longer necessary. BTW. where i can show to someone what i have done, while i'm not part of any dev team, but made some things (not much, f.ex. in-game different language chooser at client start and some translations) that could be perhaps usefull some day... ?? 178912[/snapback] sign up on berlios.de and make diffs between your changes and CVS. sumbit the patches to EL's project on berlios, and post in the forum with the number and/or link so people can critique your ideas and code. for any large effort, post beforehand. so you don't do something the same time as someone else also, everyone please note, this guide is no longer accurate since the change to Cal3d. see the threads on that for the further steps to take Edited July 11, 2005 by ttlanhil Share this post Link to post Share on other sites
Roja Report post Posted March 1, 2006 Cal3D info: http://www.eternal-lands.com/forum/index.php?showtopic=21789 Is a programmer willing to update this post, to make a nice, clean guide to compiling the client? Share this post Link to post Share on other sites
Zep Report post Posted March 6, 2006 Is a programmer willing to update this post, to make a nice, clean guide to compiling the client? Is been really messy since the cal3d addition, Unfortunatly it doesnt like to compile properly on mingw (dev-c++), and when it does, it misses the wrapper info we need, to top it off, there is no dev-pak for it, And a bunch of instructions that may or may not work for the indervidual depending on version of mingw etc being used. Then there is the requirements depending on what flags you need enabled in the client, like the xml write gear. Probably more stuff since i last looked. vorbis also has a few requirements. fun fun =). Once the next version of cal3d is released and the client is updated for it, Things should be a lot cleaner. Share this post Link to post Share on other sites
Roja Report post Posted March 7, 2006 Are there problems with the 0.10 version of Cal3d? Share this post Link to post Share on other sites
crusadingknight Report post Posted March 7, 2006 there is no dev-pak for it, And a bunch of instructions that may or may not work for the indervidual depending on version of mingw etc being used. I think I can change that next week, when I have a break between projects. Share this post Link to post Share on other sites
crusadingknight Report post Posted March 11, 2006 (edited) OK, before I try to amend the frontpage instructions, someone (preferrably with Dev-Cpp/Code::Blocks) try the following: Download and run http://www.rootshell.be/~bremac/dist/Cal3D.DevPak Copy the two DLL files starting with cal3d out of your $DEV-CPP\dll directory to your EL directory. (Yes, I know I could install them to the System folder, but I want to make programmers aware that there is an extra file. This is because cal3d_extra only needs to be compiled once, and is quite reusable. Plus, it saves setup headaches.) Follow the instructions on the first page of this thread, adding the following to your compiler flags: -lcal3d -lcal3d_extra You'll probably also need to alter the compiler flags, to something like the following (Note: somebody has to clean up the compiler flags. If it's in mainstream distribution, couldn't we just make it default?): -Wall -DELC -DNEW_FRUSTUM -DBUG_FIX_3D_OBJECTS_MIN_MAX -DWIDGETS_FIX -DNEW_TEX -DNETWORK_THREAD -DNEW_ACTOR_ANIMATION -DCOMMAND_BUFFER -DOPTIONS_I18N -DAUTO_UPDATE (On further inspection, can't we just mainstream NEW_FRUSTUM, WIDGETS_FIX, NETWORK_THREAD, COMMAND_BUFFER, AUTO_UPDATE and OPTIONS_I18N?) Edited March 11, 2006 by crusadingknight Share this post Link to post Share on other sites
Learner Report post Posted March 11, 2006 OK, before I try to amend the frontpage instructions, someone (preferrably with Dev-Cpp/Code::Blocks) try the following: Download and run http://www.rootshell.be/~bremac/dist/Cal3D.DevPak Copy the two DLL files starting with cal3d out of your $DEV-CPP\dll directory to your EL directory. (Yes, I know I could install them to the System folder, but I want to make programmers aware that there is an extra file. This is because cal3d_extra only needs to be compiled once, and is quite reusable. Plus, it saves setup headaches.) Follow the instructions on the first page of this thread, adding the following to your compiler flags: -lcal3d -lcal3d_extra You'll probably also need to alter the compiler flags, to something like the following (Note: somebody has to clean up the compiler flags. If it's in mainstream distribution, couldn't we just make it default?): -DWINDOWS -Wall -DELC -DNEW_FRUSTUM -DBUG_FIX_3D_OBJECTS_MIN_MAX -DWIDGETS_FIX -DNEW_TEX -DNETWORK_THREAD -DNEW_ACTOR_ANIMATION -DCOMMAND_BUFFER -DOPTIONS_I18N BUG_FIX_3D_OBJECTS_MIN_MAX should never be main stream! It is a hack for some bad data in the files. Once the bad data is removed this compile option wont be needed and file load time will improve a little. (On further inspection, can't we just mainstream NEW_FRUSTUM, BUG_FIX_3D_OBJECTS_MIN_MAX, WIDGETS_FIX, NETWORK_THREAD, COMMAND_BUFFER, and OPTIONS_I18N?) Share this post Link to post Share on other sites
Roja Report post Posted March 11, 2006 Ok I started to do what you said but two things: 1. your cal3d link isn't working 2. the OpenAL link in the first post doesn't work. I took this instead, hope it's ok: http://www.openal.org/openal_webstf/downlo...%20PC%20SDK.exe Share this post Link to post Share on other sites