Jump to content
Eternal Lands Official Forums
Roja

Help me compile the client!

Recommended Posts

Opps, that's my fault. If you do "CVS update" in the elc directory then the make command again it should now work. However, to make a version that works with the 1.9.1 data you need to change a few more build options. Open the file make.defaults in an editor and remove the leading # from these lines:

#FEATURES += MORE_ATTACHED_ACTORS	     # Enable more activities on horses
#FEATURES += NECK_ITEMS			     # Enables medallions/scarves
#FEATURES += LARGE_TEXTURES		     # Changes player character texture size block to 512x512.
#FEATURES += ACHIEVEMENTS			# Display player achievements window when use eye cursor on player

Then do the make -f Makefile.linux again.

 

The eternallands-rc and eternallands-rc-data packages are packaged versions of the new test client and data. I've updated them this morning and they should be ready to download very soon, when the launchpad servers have finished their work. When you install them, they replace the 1.9.0 client and data files with the new.

Share this post


Link to post
Share on other sites

Hi,

 

I am having this problem when compiling on fedora 14:

 

# make -f Makefile.linux

LINK el.x86.linux.bin

/usr/bin/ld: paste.o: undefined reference to symbol 'XConvertSelection'

/usr/bin/ld: note: 'XConvertSelection' is defined in DSO /usr/lib/libX11.so.6 so try adding it to the linker command line

/usr/lib/libX11.so.6: could not read symbols: Invalid operation

collect2: ld returned 1 exit status

make: *** [el.x86.linux.bin] Error 1

 

Anyone know how to resolve this?

 

Thanks.

Share this post


Link to post
Share on other sites

A quick google shows quite a few similar issues due to (recent?) change on the fedora link process. Looks like appending -lX11 to the LDFLAGS macro in Makefile.linux may help.

Share this post


Link to post
Share on other sites

Hi,

 

Thanks for the response. I now get past that and get this:

 

LINK el.x86.linux.bin

/usr/bin/ld: quest_log.o: undefined reference to symbol 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_not_of(char, unsigned int) const@@GLIBCXX_3.4'

/usr/bin/ld: note: 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_not_of(char, unsigned int) const@@GLIBCXX_3.4' is defined in DSO /usr/lib/libstdc++.so.6 so try adding it to the linker command line

/usr/lib/libstdc++.so.6: could not read symbols: Invalid operation

collect2: ld returned 1 exit status

make: *** [el.x86.linux.bin] Error 1

 

Im looking around on google...but if you already know what to do, I appreciate your help!

Share this post


Link to post
Share on other sites

Yes I added that. Now the linking completes. However, now when I try to start the game, I see the Eternal Lands splash screen, but then it closes and says:

 

# ./el.x86.linux.bin

Segmentation fault (core dumped)

 

Is there some way for me to view what is happening in a log somewhere?

 

Thanks again!

Share this post


Link to post
Share on other sites

Make sure you are running the built executable from the directory you installed the data files or have set your "#data_dir" path to that directory in the config file "$HOME/.elc/main/el.ini". After that, most crashes can be solved by having good video drivers, setting "#poor_man=1" in the config file or setting "#use_animation_program=0" in the same file. As a last resort disable shaders by renaming the "shaders" directory of the data files (where #data_dir points) so they are not loaded.

 

There's an error log in "$HOME/.elc/error_log.txt. A loading progress log in "$HOME/.elc/main/infos.log". You may be better off running the code through the gdb debugger though. Start with "gdb ./el.x86.linux.bin", then "run". After the crash use "bt full" to see where the client has reached.

Share this post


Link to post
Share on other sites

I have now been able to enter the game by renaming the shaders directory and restarting the game.

 

Running Fedora 14 and here's my other info in case anyone else cares:

 

2.6.35.10-74.fc14

 

$ lspci |grep -i "vga"

01:00.0 VGA compatible controller: ATI Technologies Inc M56P [Radeon Mobility X1600]

 

 

Thanks for your help. :)

Share this post


Link to post
Share on other sites

I'm trying to compile it on Fedora 14 64-bit.

I added -DX86_64 to options in Makefile.linux and changed platform to x86-64. I also added -lX11 and -lstdc++ to EXTRA_LIBS to make it all link.

When I start the binary, I see a progress bar on white screen, no logo or anything, and then it crashes.

 

el.x86.linux.bin: io/cal3d_io_wrapper.cpp:212: int CalCoreModel_ELLoadCoreAnimation(CalCoreModel*, const char*, float): Assertion `self' failed.

 

backtrace in gdb (I only installed debug info for cal3d):

#0 0x0000003cf94330c5 in raise (sig=6)

at ../nptl/sysdeps/unix/sysv/linux/raise.c:64

#1 0x0000003cf9434a76 in abort () at abort.c:92

#2 0x0000003cf942b905 in __assert_fail (assertion=0x66d801 "self",

file=<value optimized out>, line=212, function=<value optimized out>)

at assert.c:81

#3 0x000000000055a697 in CalCoreModel_ELLoadCoreAnimation (self=0x0,

strFilename=0x7fffffffd9f0 "./animations/emotes/player_waveleft_stand.caf", scale=0) at io/cal3d_io_wrapper.cpp:212

#4 0x000000000043d797 in cal_load_anim (act=0xd1d560,

str=0x7fffffffdb60 "./animations/emotes/player_waveleft_stand.caf 1",

sound=0x611f2f "", sound_scale=0x611f2f "", duration=-1) at cal.c:410

#5 0x0000000000420cec in parse_actor_frames (act=0xd1d560, cfg=0x3c997f0,

defaults=0x0) at actor_scripts.c:3823

#6 0x000000000041c206 in parse_emotes_defs (node=0x3c5e3d0)

at actor_scripts.c:2655

#7 0x000000000041c4eb in read_emotes_defs (dir=0x61a572 "",

index=0x61a567 "emotes.xml") at actor_scripts.c:2703

#8 0x00000000004833d3 in init_stuff () at init.c:812

#9 0x00000000004a9d69 in main (argc=1, argv=0x7fffffffe208) at main.c:356

 

BTW, it looks that CVS/GIT code doesn't have some data files. I copied what I found missing from installation package.

Share this post


Link to post
Share on other sites
BTW, it looks that CVS/GIT code doesn't have some data files. I copied what I found missing from installation package.

don't use the data files from git, they aren't maintained. Use the files from installation package and replace the binary with yours.

Share this post


Link to post
Share on other sites
BTW, it looks that CVS/GIT code doesn't have some data files. I copied what I found missing from installation package.

don't use the data files from git, they aren't maintained. Use the files from installation package and replace the binary with yours.

 

Thanks! Now it works!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×