x86 Debian sid with the SDL libraries installed:
libsdl-image1.2 1.2.3-5 image loading library for Simple DirectMedia Layer 1.2
libsdl-ttf2.0-0 2.0.6-5 ttf library for Simple DirectMedia Layer with FreeType
libsdl1.2debian 1.2.7-10 Simple DirectMedia Layer
libsdl1.2debian-all 1.2.7-10 Simple DirectMedia Layer (with all available options)
The libraries are located in /usr/lib/:
/usr/lib/libSDL-1.2.so.0.7.0
/usr/lib/libSDL-1.2.so.0
/usr/lib/libSDL_image-1.2.so.0.1.2
/usr/lib/libSDL_image-1.2.so.0
/usr/lib/libSDL_ttf-2.0.so.0
/usr/lib/libSDL_ttf-2.0.so.0.6.0
$ ./parrot examples/sdl/lcd/clock.imc
Couldn't load 'libSDL': libSDL: cannot open shared object file: No such file or directory
Couldn't load 'libSDL_image': libSDL_image: cannot open shared object file: No such file or directory
Couldn't load 'libSDL_ttf': libSDL_ttf: cannot open shared object file: No such file or directory
Couldn't load 'libSDL': libSDL: cannot open shared object file: No such file or directory
Segmentation fault
In runtime/parrot/library/SDL.imc I replaced the respective loadlibs with:
loadlib libsdl, 'libSDL-1.2.so.0'
loadlib image_lib, 'libSDL_image-1.2.so.0'
loadlib ttf_lib, 'libSDL_ttf-2.0.so.0'
And it worked! (w/warning: SDL::fetch_layout warning: layout 'Pixels' not found!)
At this stage of development is parrot supposed to automatically locate
the shared libraries?
Thanks,
Adam
> In runtime/parrot/library/SDL.imc I replaced the respective loadlibs with:
>
> loadlib libsdl, 'libSDL-1.2.so.0'
That's not a general solution, as it makes explicit system-dependent
assumptions on filenames.
I've added explicit symlinks - it looks like a debian problem (missing
link to .so):
$ locate libSDL_image
/usr/lib/libSDL_image-1.2.so.0
/usr/lib/libSDL_image-1.2.so.0.1.2
/usr/lib/libSDL_image.so
$ ls -l $(locate libSDL_image.so)
... /usr/lib/libSDL_image.so -> libSDL_image-1.2.so.0
(for all these libs)
> And it worked! (w/warning: SDL::fetch_layout warning: layout 'Pixels' not found!)
Yep.
> At this stage of development is parrot supposed to automatically locate
> the shared libraries?
If they are named properly and are located in either
runtime/parrot/dynext/ or in a location that the loader searches - yes.
> Thanks,
> Adam
leo