Jump to content
Eternal Lands Official Forums
Wytter

Windows Compilation Guide

Recommended Posts

I've tried and tried to compile but for some reason it wont work. I got to the part on Emjakerl's post where it said

At this point you have two choices:

While you are in c:\dev-cpp\include copy the contents of the "AL" and "SDL" directories up one level to c:\dev-cpp\include (Hack way)

OR

Tell Dev-Cpp that you want AL and SDL directories to be in the include path. (Right-er way)

Go to Tools>Compiler Options

Click on the Directories tab

Click on the C Includes tab

Click on the button just above the Delete Invalid button. It's next to a small empty text box. It opens a folder browser.

Find c:\dev-cpp\include\SDL and press OK

The empty textbox now has c:\dev-cpp\include\SDL in it. Press the add button.

Repeat the last three steps for c:\dev-cpp\include\AL (or copy and paste the directory into the empty box. Your choice.***Don't forget to "Add" the directory***)

I got the SDL file in there and added, but I could not find the AL file. Does this mean I am missing a file somewhere, and if so, where do i get it from? Sorry, I'm a bit noob at this programming stuff, but heres the error:

Compiler: Default compiler

Building Makefile: "C:\Dev-Cpp\Makefile.win"

Executing make...

make.exe -f "C:\Dev-Cpp\Makefile.win" all

gcc.exe -o "Project2.exe" -L"C:/Dev-Cpp/lib"

 

gcc.exe: no input files

 

make.exe: *** [Project2.exe] Error 1

 

Execution terminated

Edited by fyrrflyy

Share this post


Link to post
Share on other sites

Did you read this update?

http://www.eternal-lands.com/forum/index.p...st&p=348708

 

Use the makefile.win as it says in the updated guide.

I can't get it to compile anymore either, I have even deleted everything and started from scratch with dev-cpp.

I have followed emajekral's guide absolutely to the letter, I have followed kl4Uz's revisions to the letter...I tried with makefile.win and without...

I had a working compiled client up to a point, but once eye_candy stuff started getting added, there were too many threads and too many people saying "do this, add that, take away this" etc... And people started contradicting each other.

***disclaimer**** In no way am I blaming eye_candy, only pointing out that this is when the instructions got muddy, to say the least.

 

I have had various different errors, that i could not fix, the most recent one being the glext.h one I last posted. I am left with a nagging feeling I have one or more options incorrect in my compiler, or it is missing some crucial thing.

 

If somebody could post an updated complete guide from the bottom up (not relying on previous guides) and including a list of what we are supposed to have in our compiler and precisely where, and what options should be checked and what not, I know I for one would be immeasurably greatful.

Share this post


Link to post
Share on other sites

That's the same errors I had, try reinstalling the exe from OpenAL en put them again under dev-cpp\includes. That should fix it (it worked for me). Normally the files al.h alc.h and alut.h should be somewhere in program files\Openal<number>.

 

Edit: I finally managed to compile the client myself ^^ Thx for the new guides, imo the guide on the first page should be updated because it's really bad to follow.

Edited by Cycloonx

Share this post


Link to post
Share on other sites

Nvm, I give up unless someone is willing to walk me through what needs to be done, I seem to be just removing one error and replacing it with another every time I try to fix something. Tomorrow I'm gonna delete all files I downloaded, then try doing it over from scratch. If that doesnt work, I dont know what to do.

Edited by fyrrflyy

Share this post


Link to post
Share on other sites

This refuses to work for me:

 

LOG_TO_CONSOLE(c_red2,resync_server);

 

Compiler: Default compiler
Executing  make clean
-f was unexpected at this time.

make.exe: *** [make.conf] Error 255

Execution terminated

Share this post


Link to post
Share on other sites

Aislinn, it should work if you rename your make.defaults to make.conf.

I did that, unless I have some settings wrong in it. :devlish:

Share this post


Link to post
Share on other sites

I'll describe how I'm doing this.

  1. Delete all files from the folder, where CVS is downloaded, leave the directories
  2. Download missing or updated CVS files (CVS >> Checkout)
  3. Make a copy of make.defaults in the same location, then rename it to make.conf
  4. Start Bloodshed DEV C++
  5. Select File >> New >> Project
  6. Select Empty Project, C Project, name of the project: elcvs
  7. Save directory: the same where CVS files are placed.
  8. Project >> Add to project, go to CVS directory, press ctrl+a (select all), then click on 'Open'
  9. Hit alt+p >> Makefile tab >> Select "Use custom makefile", browse, find Makefile.win in the el cvs directory, confirm by OK
  10. Hit Ctrl+F9

Sometimes i've got those errors:

1. Error creating libelc.a, permission denied

2. Error with 'alutLoadMemoryFromFile' in sound.c

 

Solution:

1. Create libelc.a manually before compilation.

2. put "//" before the "alutLoadMemoryFromFile" line, in sound.c

 

 

Maybe this would help... I had other, annoying problems, but making the new project, and deleting the cvs files each time new commit occur really helps.

Edited by BloodSucker

Share this post


Link to post
Share on other sites

libelc.a gave me headaches too...it just got stuck on creating one. Excellent fix.

 

Working windows eye candy client now, thank you everybody who helped me!!!!!! :):)

Share this post


Link to post
Share on other sites

Can someone help me? I have a ton of errors similar to this:

 

elc/eye_candy/math_cache.o(.text+0xd):math_cache.cpp: undefined reference to `std::string::size() const'
elc/eye_candy/math_cache.o(.text+0x60):math_cache.cpp: undefined reference to `std::string::operator[](unsigned int) const'
elc/eye_candy/math_cache.o(.text+0x9f):math_cache.cpp: undefined reference to `std::string::operator[](unsigned int) const'
elc/eye_candy/math_cache.o(.text+0xce):math_cache.cpp: undefined reference to `std::string::operator[](unsigned int) const'
elc/eye_candy/math_cache.o(.text+0x1e27):math_cache.cpp: undefined reference to `std::ios_base::Init::Init()'
elc/eye_candy/math_cache.o(.text+0x1e42):math_cache.cpp: undefined reference to `std::ios_base::Init::~Init()'

 

And also stuff like this:

std::char_traits<char> >&, char const*)'
elc/eye_candy/effect_bag.o(.text+0x860):effect_bag.cpp: undefined reference to `std::ostream::operator<<(void const*)'
elc/eye_candy/effect_bag.o(.text+0x870):effect_bag.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
elc/eye_candy/effect_bag.o(.text+0x878):effect_bag.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
elc/eye_candy/effect_bag.o(.text+0x880):effect_bag.cpp: undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'

 

 

These are the compiler options I have:

-Wall -DELC -DNEW_FRUSTUM -DAUTO_UPDATE -DBUG_FIX_3D_OBJECTS_MIN_MAX -DCOUNTERS -DNEW_TEX -DNEW_ACTOR_ANIMATION -DOPTIONS_I18N -DALUT_WAV -DSFX -DUSE_ACTOR_DEFAULTS -DDYNAMIC_ANIMATIONS -DEYE_CANDY -DNEW_LIGHTING

 

And the linkers:

-mwindows -lSDL -lopengl32 -llibxml2 -lSDL_net -lALut -lOpenAL32 -lvorbisfile -lvorbis -logg -liberty -liconv -lcal3d -lcal3d_extra -lglu32 -lSDL_image -llibpng13

Share this post


Link to post
Share on other sites

you need to link to the C++ standard library... it'd probably be (in link options) -lstdc++

Share this post


Link to post
Share on other sites

Thanks, that definetly cut back on a ton of those errors, now i'm getting stuff like this:

 

Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
elc/3d_objects.o(.text+0x132c):3d_objects.c: undefined reference to `ec_add_object_obstruction'
elc/3d_objects.o(.text+0x3d2a):3d_objects.c: undefined reference to `ec_remove_obstruction_by_object3d'
elc/3d_objects.o(.text+0x3edb):3d_objects.c: undefined reference to `ec_remove_obstruction_by_e3d_object'
elc/actor_scripts.o(.text+0x1fba):actor_scripts.c: undefined reference to `ec_actor_delete'
elc/actor_scripts.o(.text+0x214b):actor_scripts.c: undefined reference to `ec_actor_delete'
elc/actor_scripts.o(.text+0x2633):actor_scripts.c: undefined reference to `use_eye_candy'
elc/actor_scripts.o(.text+0x2877):actor_scripts.c: undefined reference to `ec_create_impact_blood'
elc/actors.o(.text+0x35c):actors.c: undefined reference to `ec_add_actor_obstruction'
elc/bags.o(.text+0x139):bags.c: undefined reference to `use_eye_candy'
elc/bags.o(.text+0x175):bags.c: undefined reference to `ec_create_bag_drop'
elc/bags.o(.text+0x5a3):bags.c: undefined reference to `use_eye_candy'
elc/bags.o(.text+0x5df):bags.c: undefined reference to `ec_create_bag_pickup'
elc/consolewin.o(.text+0x244):consolewin.c: undefined reference to `ec_idle'
elc/elconfig.o(.text+0x1d0):elconfig.c: undefined reference to `ec_set_draw_detail'
elc/elconfig.o(.text+0x2a5):elconfig.c: undefined reference to `ec_set_draw_method'
elc/elconfig.o(.text+0x3a04):elconfig.c: undefined reference to `use_eye_candy'
elc/gamewin.o(.text+0x1047):gamewin.c: undefined reference to `ec_idle'
elc/gamewin.o(.text+0x104c):gamewin.c: undefined reference to `ec_draw'
elc/gamewin.o(.text+0x1132):gamewin.c: undefined reference to `use_eye_candy'
elc/gamewin.o(.text+0x118b):gamewin.c: undefined reference to `use_eye_candy'
elc/gamewin.o(.text+0x1194):gamewin.c: undefined reference to `use_eye_candy'
elc/gamewin.o(.text+0x11da):gamewin.c: undefined reference to `use_eye_candy'
elc/gamewin.o(.text+0x25b5):gamewin.c: undefined reference to `ec_create_campfire'
elc/init.o(.text+0xffb):init.c: undefined reference to `ec_init'

 

Any idea?

Share this post


Link to post
Share on other sites

dunno about the first one, but the rest mean the eye-candy code isn't being seen by the rest of the code when it's being tied together. unfortunately, I don't know what causes that, but it may be that your compiler is trying to link only the C-code first (which won't work). there may be some settings you can get to for linking all-at-once or C-and-C++

hopefully someone more familiar with your IDE/compiler can help out

 

failing that, nearly all the problems relating to C++ can be cured by not including -DEYE_CANDY, though that's hardly an ideal solution :(

Share this post


Link to post
Share on other sites

Oh, ok the problem was I had those cpp files checked to "compile with c++"..so i unchecked that and now it compiled :(

Share this post


Link to post
Share on other sites

I tried to compile earlier today, got 4 errors, I dunno what they mean though. Here they are:

 

 

Compiler: Default compiler

Building Makefile: "C:\Documents and Settings\robbie chamberlain\Desktop\Stefan\Makefile.win"

Executing make...

make.exe -f "C:\Documents and Settings\robbie chamberlain\Desktop\Stefan\Makefile.win" all

gcc.exe -c "My Documents/EL Source Code/elc/2d_objects.c" -o "My Documents/EL Source Code/elc/2d_objects.o" -I"C:/Dev-Cpp/include"

 

gcc.exe -c "My Documents/EL Source Code/elc/3d_objects.c" -o "My Documents/EL Source Code/elc/3d_objects.o" -I"C:/Dev-Cpp/include"

 

gcc.exe -c "My Documents/EL Source Code/elc/actor_scripts.c" -o "My Documents/EL Source Code/elc/actor_scripts.o" -I"C:/Dev-Cpp/include"

 

My Documents/EL Source Code/elc/actor_scripts.c: In function `update_all_actors':

My Documents/EL Source Code/elc/actor_scripts.c:988: error: `resync_server' undeclared (first use in this function)

My Documents/EL Source Code/elc/actor_scripts.c:988: error: (Each undeclared identifier is reported only once

My Documents/EL Source Code/elc/actor_scripts.c:988: error: for each function it appears in.)

 

My Documents/EL Source Code/elc/actor_scripts.c: In function `add_command_to_actor':

My Documents/EL Source Code/elc/actor_scripts.c:1010: error: `cant_add_command' undeclared (first use in this function)

 

make.exe: *** ["My Documents/EL Source Code/elc/actor_scripts.o"] Error 1

 

Execution terminated

Edited by fyrrflyy

Share this post


Link to post
Share on other sites

I've been through the compile procedure and have a working .exe. There's a few little issues I need to work out, but I should have an updated compile guide up by 4 hours from now.

 

If anyone's on... can you tell me what sector.o is supposed to be and why it's in the COBJS in Makefile.win? There's no sector.c so that target will not work. I notice it's not in Makefile.linux...

Share this post


Link to post
Share on other sites

If anyone's on... can you tell me what sector.o is supposed to be and why it's in the COBJS in Makefile.win? There's no sector.c so that target will not work. I notice it's not in Makefile.linux...

It was probably just never cleaned out during the last purge

Share this post


Link to post
Share on other sites

I had not been able to compile because of a sector.c error saying no such file. I saw this post above and removed sector.o which gave me a working client...except it crashes whenever I click on the ELconfig tools icon.

Also my health bar looked twice as fat and I did not get any message about my graphics card supporting the future EL features when i logged on.

 

Error log:

Log started at 2007-06-12 23:59:44 localtime (Eastern Daylight Time)

 

[23:59:44] Error: Can't open file "quest.log"

[23:59:44] Error: Can't open file "custom_mirrors.lst"

[23:59:44] Error: Can't open file "commands.lst"

[00:00:05] Client closed

Share this post


Link to post
Share on other sites

Healthbar is probably due to the perspective-banners which I checked in this morning. And set -DGL_EXTENSION_CHECK for the extension check on login.

Dunno about the elconfig crash, though.

 

ed: I just removed sector.o from Makefile.win in CVS, so that issue should hopefully be gone

Edited by ttlanhil

Share this post


Link to post
Share on other sites

And set -DGL_EXTENSION_CHECK for the extension check on login.

This wasn't even included in my make.default so I added it as this and it worked fine:

FEATURES += GL_EXTENSION_CHECK # (undocumented)

Share this post


Link to post
Share on other sites

Work complete.

 

Some of the uglier library installs are now shiny new DevPaks.

 

Let me know if there are any problems with the directions. I will monitor this thread for about a week. Expect min. 24hr turnaround - I'm a busy guy.

 

Edit by Aisy: Here is the link to his updated compilation guide: http://www.eternal-lands.com/forum/index.p...st&p=283853

Edited by Aislinn

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×