[Image-SIG] help compiling PIL

Michal Wallace sabren@manifestation.com
Fri, 30 Jun 2000 10:04:15 -0400 (EDT)

Hey Fredrik, everyone:

On Thu, 22 Jun 2000, Fredrik Lundh wrote:

> Michal Wallace wrote:
> > I'm having a real hard time getting PIL 1.1 to compile on my machine.
> > It seems to compile correctly, but when I try to actually use it, I 
> > get:
> > 
> > >>> import _imaging
> > Traceback (innermost last):
> >   File "<stdin>", line 1, in ?
> > ImportError: Undefined symbol "_ImagingSavePPM" in python:./_imaging.so
> > 
> > Can someone help me out here?
> I have no idea...  the only difference I see is that I'm using a newer
> compiler (we just upgraded our servers), but I'm sure I've compiled
> earlier versions of PIL with 2.7.2 without problems.
> You could try #undef'ing the WITH_DEBUG flag in _imaging.so.

Didn't help. :/

> Or update your compiler...

Maybe, but I'm really trying to avoid that.

I think my problem is that I just don't know what I'm doing as far as
linking goes. :) I only know a little C, and I'm a total newbie when
it comes to compiling and linking multi-file programs. The File.o file
in the libImaging directory compile just fine, and seems to have the
symbols defined, but coretest.o doesn't:

[~/src/Imaging-1.1/libImaging]: nm -t *.o | grep _ImagingSavePPM

.. Nor does _imaging.o

[~/src/Imaging-1.1/libImaging]: cd ..
[~/src/Imaging-1.1]: nm -t *.o | grep _ImagingSavePPM

(for some reason, the compiler puts an underscore in front of every
symbol, but it happens with everything, so that isn't the problem)

One thing: make really did not like the backslashes at the ends of the
lines in the Setup.in file, so I took them out. So the _imaging lines
for my Setup file look like this:

_imaging  _imaging.c decode.c encode.c map.c display.c outline.c path.c
        -IlibImaging -IlibImaging/libImaging.a


Maybe a better question is: Has anyone on this list successfully
compiled PIL on a shell account at pair.com?


- Michal
www.manifestation.com  www.sabren.com  www.linkwatcher.com  www.zike.net