Not able to run it

33 views
Skip to first unread message

shirish शिरीष

unread,
Jan 13, 2011, 1:34:19 AM1/13/11
to lambd...@googlegroups.com
Hi all,
I was first disappointed that there is no AMD64 build that I
could see. Then downloaded the i386 version. When I'm trying to play
it, it gives me this.

$ ./lambdarogue
./lambdarogue: error while loading shared libraries: libSDL-1.2.so.0:
cannot open shared object file: No such file or directory

Doing an apt-file search gives me this :-

$ apt-file search libSDL-1.2.so.0
ia32-libs: /usr/lib32/libSDL-1.2.so.0
ia32-libs: /usr/lib32/libSDL-1.2.so.0.11.3
libsdl1.2debian-all: /usr/lib/libSDL-1.2.so.0
libsdl1.2debian-all: /usr/lib/libSDL-1.2.so.0.11.3
libsdl1.2debian-alsa: /usr/lib/libSDL-1.2.so.0
libsdl1.2debian-alsa: /usr/lib/libSDL-1.2.so.0.11.3
libsdl1.2debian-arts: /usr/lib/libSDL-1.2.so.0
libsdl1.2debian-arts: /usr/lib/libSDL-1.2.so.0.11.3
libsdl1.2debian-esd: /usr/lib/libSDL-1.2.so.0
libsdl1.2debian-esd: /usr/lib/libSDL-1.2.so.0.11.3
libsdl1.2debian-nas: /usr/lib/libSDL-1.2.so.0
libsdl1.2debian-nas: /usr/lib/libSDL-1.2.so.0.11.3
libsdl1.2debian-oss: /usr/lib/libSDL-1.2.so.0
libsdl1.2debian-oss: /usr/lib/libSDL-1.2.so.0.11.3
libsdl1.2debian-pulseaudio: /usr/lib/libSDL-1.2.so.0
libsdl1.2debian-pulseaudio: /usr/lib/libSDL-1.2.so.0.11.3

Can anybody tell/guide me where I'm going wrong ?
--
          Regards,
          Shirish Agarwal  शिरीष अग्रवाल
  My quotes in this email licensed under CC 3.0
http://creativecommons.org/licenses/by-nc/3.0/
http://flossexperiences.wordpress.com
065C 6D79 A68C E7EA 52B3  8D70 950D 53FB 729A 8B17

Mario Donick

unread,
Jan 13, 2011, 2:30:14 AM1/13/11
to LambdaRogue
I don't know what the problem is here. If the AMD64 is a 64 bit CPU
then the 32 bit binary shouldn't run, or perhaps it tries to find 32
bit SDL libs.

On my Ubuntu 10.10, it was sufficient to install SDL and SDL_Image to
be able to run it ...

Sorry about that. I don't have access to 64 bit machines to test this.
(If you have Wine installed, you could run the Windows version without
problems ...)

Mario
>   My quotes in this email licensed under CC 3.0http://creativecommons.org/licenses/by-nc/3.0/http://flossexperiences.wordpress.com

Bruno9779

unread,
Jan 14, 2011, 6:16:10 AM1/14/11
to LambdaRogue
It is not true that 32bit apps cannot run on 64bit machines. On
Ubuntu, you just need to install ia32libs.

Now, Debian based distros, on 64bit systems, put 32bit libs in /lib32
and 64 bit ones in /lib. This means that sometimes you'll have to make
a symbolic link for them to work.

In this case, first look for libSDL-1.2.so.0 on your system

sudo find / -name libSDL-1.2.so.0

I have 50-something results, from all the apps that pack it. The one
you are looking for is the one in /usr/lib.

Then link it

sudo ln -s /usr/lib/libSDL-1.2.so.0 /usr/lib32/libSDL-1.2.so.0

You may probably have to repeat this for some other SDL libraries.
You can do this most of the times when a 32 bit program cannot find a
64 bit dependency
> >   My quotes in this email licensed under CC 3.0http://creativecommons.org/licenses/by-nc/3.0/http://flossexperiences...

Mario Donick

unread,
Jan 14, 2011, 7:03:07 AM1/14/11
to LambdaRogue
Thank you for these hints -- I hope this is helpful for shirish and
any other people who have similar problems.

shirish शिरीष

unread,
Jan 19, 2011, 1:58:57 AM1/19/11
to lambd...@googlegroups.com
Hi all,
I should have said that while I'm subscribed to the mailing list
delivery is off so needed to be CC'ed . Was browsing web and got your
reply Bruno 9779

"It is not true that 32bit apps cannot run on 64bit machines. On
Ubuntu, you just need to install ia32libs.
Now, Debian based distros, on 64bit systems, put 32bit libs in /lib32
and 64 bit ones in /lib. This means that sometimes you'll have to make
a symbolic link for them to work.
In this case, first look for libSDL-1.2.so.0 on your system
sudo find / -name libSDL-1.2.so.0
I have 50-something results, from all the apps that pack it. The one
you are looking for is the one in /usr/lib.
Then link it
sudo ln -s /usr/lib/libSDL-1.2.so.0 /usr/lib32/libSDL-1.2.so.0
You may probably have to repeat this for some other SDL libraries.
You can do this most of the times when a 32 bit program cannot find a
64 bit dependency "

Trying it out and will let you know as soon as I can.

Please CC me if and when I have queries.

Thank you for taking your time to atleast try resolving this issue.

shirish शिरीष

unread,
Jan 19, 2011, 2:27:35 AM1/19/11
to lambd...@googlegroups.com
At bottom :-

2011/1/19 shirish शिरीष <shiri...@gmail.com>:


> Hi all,
>  I should have said that while I'm subscribed to the mailing list
> delivery is off so needed to be CC'ed . Was browsing web and got your
> reply Bruno 9779
>
> "It is not true that 32bit apps cannot run on 64bit machines. On
> Ubuntu, you just need to install ia32libs.
> Now, Debian based distros, on 64bit systems, put 32bit libs in /lib32
> and 64 bit ones in /lib. This means that sometimes you'll have to make
> a symbolic link for them to work.
> In this case, first look for libSDL-1.2.so.0 on your system
>  sudo find / -name libSDL-1.2.so.0
> I have 50-something results, from all the apps that pack it. The one
> you are looking for is the one in /usr/lib.
> Then link it
>  sudo ln -s /usr/lib/libSDL-1.2.so.0 /usr/lib32/libSDL-1.2.so.0
> You may probably have to repeat this for some other SDL libraries.
> You can do this most of the times when a 32 bit program cannot find a
> 64 bit dependency "

Hi all,
Tried out didn't work out. I just got one when trying to find the same.

$ sudo find / -name libSDL-1.2.so.0
[sudo] password for shirish:
/usr/lib/libSDL-1.2.so.0

Then linked it.

$ sudo ln -s /usr/lib/libSDL-1.2.so.0 /usr/lib32/libSDL-1.2.so.0

Then tried to run it.

$ ./lambdarogue
./lambdarogue: error while loading shared libraries: libSDL-1.2.so.0:

wrong ELF class: ELFCLASS64

Any ideas for fixing the same.

Also does anyone know how to unlink them ?

shirish शिरीष

unread,
Jan 19, 2011, 8:08:28 AM1/19/11
to lambd...@googlegroups.com
At bottom :-

Drats, instead of sharing the sudo find, it would have been better to
use locate. Found out atleast a part of the issue.

a. $ locate libSDL-1.2.so.0
/usr/lib/libSDL-1.2.so.0
/usr/lib/libSDL-1.2.so.0.11.3

b.
/usr/lib$ ls -l libSDL-1.2.so*
lrwxrwxrwx 1 root root 20 Dec 22 11:36 libSDL-1.2.so.0 ->
libSDL-1.2.so.0.11.3
-rw-r--r-- 1 root root 447968 Oct 10 21:00 libSDL-1.2.so.0.11.3

c. Then see, first deleted the old symlink made before
sudo rm /usr/lib32/libSDL-1.2.so.0

d. Now made the new symlink :-
$ sudo ln -s /usr/lib/libSDL-1.2.so.0.11.3 /usr/lib32/libSDL-1.2.so.0

Still got the same issue

./lambdarogue: error while loading shared libraries: libSDL-1.2.so.0:
wrong ELF class: ELFCLASS64

removing the symlink /usr/lib32/libSDL-1.2.so.0

Mario Donick

unread,
Jan 22, 2011, 2:36:56 PM1/22/11
to LambdaRogue
Hi Shirish,

sorry for late reply, and sorry for not being able to offer any
solution ... I can only say that "wrong ELF class: ELFCLASS64" means
that the libSDL the game tries to load is still in 64 bit format ...

May I ask you to compile the game yourself from the sources?

For this, you need to install Free Pascal as well as development files
of X11, SDL and SDL_Image. Then, cd to the source directory and type

fpc -Mobjfpc -ve fprl.pp

Then try to run the resulting binary (it's named fprl here, not
lambdarogue) -- does this work?

Best regards,
Mario
Reply all
Reply to author
Forward
0 new messages