[KPhotoAlbum] Problem loading raw images

Robert L Krawitz rlk at alum.mit.edu
Thu Jun 1 12:38:22 BST 2006


It appears that the problem is RAWImageDecoder isn't being linked into
the executable from revision 545635 on:

$ nm kphotoalbum |grep ImageDecoder
081d9c60 b _ZGVZN12ImageManager12ImageDecoder8decodersEvE10s_decoders
0815a930 T _ZN12ImageManager12ImageDecoder11mightDecodeERK7QString
0815a990 T _ZN12ImageManager12ImageDecoder6decodeEP6QImageRK7QStringP5QSizei
0815a880 T _ZN12ImageManager12ImageDecoder8decodersEv
0815ad40 T _ZN12ImageManager12ImageDecoderC1Ev
0815abe0 T _ZN12ImageManager12ImageDecoderC2Ev
0815b160 T _ZN12ImageManager12ImageDecoderD0Ev
0815b000 T _ZN12ImageManager12ImageDecoderD1Ev
0815aea0 T _ZN12ImageManager12ImageDecoderD2Ev
0815b2e0 W _ZN8QPtrListIN12ImageManager12ImageDecoderEE10deleteItemEPv
0815b2b0 W _ZN8QPtrListIN12ImageManager12ImageDecoderEE5clearEv
0815b370 W _ZN8QPtrListIN12ImageManager12ImageDecoderEED0Ev
0815b320 W _ZN8QPtrListIN12ImageManager12ImageDecoderEED1Ev
0815b310 W _ZNK8QPtrListIN12ImageManager12ImageDecoderEE5countEv
081d882c V _ZTI8QPtrListIN12ImageManager12ImageDecoderEE
081d87cc V _ZTIN12ImageManager12ImageDecoderE
08190020 V _ZTS8QPtrListIN12ImageManager12ImageDecoderEE
0818fff4 V _ZTSN12ImageManager12ImageDecoderE
081d8800 V _ZTV8QPtrListIN12ImageManager12ImageDecoderEE
081d87d8 V _ZTVN12ImageManager12ImageDecoderE
081d9c80 b _ZZN12ImageManager12ImageDecoder8decodersEvE10s_decoders

An older version, in contrast, does have these symbols.  This is
before all of the ImageManager stuff was moved off into its own
subdirectory; presumably at that time the .o files were linked
directly.

$ nm /opt/kde3/bin/kphotoalbum |grep ImageDecoder
080d2870 t _GLOBAL__I__ZN15RAWImageDecoder7_decodeEP6QImageRK7QStringP5QSizei
081d5380 b _ZGVZN12ImageDecoder8decodersEvE10s_decoders
081d53c8 b _ZGVZN15RAWImageDecoder12_mightDecodeERK7QStringE10extensions
080d2390 T _ZN12ImageDecoder11mightDecodeERK7QString
080d2410 T _ZN12ImageDecoder6decodeEP6QImageRK7QStringP5QSizei
080d22a0 T _ZN12ImageDecoder8decodersEv
080d2360 T _ZN12ImageDecoderC1Ev
080d23e0 T _ZN12ImageDecoderC2Ev
080d2330 T _ZN12ImageDecoderD0Ev
080d24a0 T _ZN12ImageDecoderD1Ev
080d2470 T _ZN12ImageDecoderD2Ev
080d2600 T _ZN15RAWImageDecoder12_mightDecodeERK7QString
080d2880 T _ZN15RAWImageDecoder7_decodeEP6QImageRK7QStringP5QSizei
080d2c50 W _ZN15RAWImageDecoderD0Ev
080d2c30 W _ZN15RAWImageDecoderD1Ev
081d53c0 B _ZN66_GLOBAL__N__ZN15RAWImageDecoder7_decodeEP6QImageRK7QStringP5QSizei10rawdecoderE
080d2530 W _ZN8QPtrListI12ImageDecoderE10deleteItemEPv
080d2520 W _ZN8QPtrListI12ImageDecoderE5clearEv
080d25b0 W _ZN8QPtrListI12ImageDecoderED0Ev
080d2570 W _ZN8QPtrListI12ImageDecoderED1Ev
080d2560 W _ZNK8QPtrListI12ImageDecoderE5countEv
08185bc0 V _ZTI12ImageDecoder
08185c54 V _ZTI15RAWImageDecoder
08185c2c V _ZTI8QPtrListI12ImageDecoderE
08185bc8 V _ZTS12ImageDecoder
08185c60 V _ZTS15RAWImageDecoder
08185c38 V _ZTS8QPtrListI12ImageDecoderE
08185bd8 V _ZTV12ImageDecoder
08185c78 V _ZTV15RAWImageDecoder
08185c00 V _ZTV8QPtrListI12ImageDecoderE
081d53a0 b _ZZN12ImageDecoder8decodersEvE10s_decoders
081d53e0 b _ZZN15RAWImageDecoder12_mightDecodeERK7QStringE10extensions

What I notice in ImageManager/.libs is that a static library (.a) is
generated.  It contains all of the right stuff.  Presumably what
happens is that nothing actually requires the RAW image decoder by
explicit reference, so the linker doesn't bother linking it in:

$ nm libImageManager.a |grep ImageDecoder
         U _ZN12ImageManager12ImageDecoder6decodeEP6QImageRK7QStringP5QSizei
ImageDecoder.o:
00000000 b _ZGVZN12ImageManager12ImageDecoder8decodersEvE10s_decoders
000000b0 T _ZN12ImageManager12ImageDecoder11mightDecodeERK7QString
00000110 T _ZN12ImageManager12ImageDecoder6decodeEP6QImageRK7QStringP5QSizei
00000000 T _ZN12ImageManager12ImageDecoder8decodersEv
000004c0 T _ZN12ImageManager12ImageDecoderC1Ev
00000360 T _ZN12ImageManager12ImageDecoderC2Ev
000008e0 T _ZN12ImageManager12ImageDecoderD0Ev
00000780 T _ZN12ImageManager12ImageDecoderD1Ev
00000620 T _ZN12ImageManager12ImageDecoderD2Ev
00000000 W _ZN8QPtrListIN12ImageManager12ImageDecoderEE10deleteItemEPv
00000000 W _ZN8QPtrListIN12ImageManager12ImageDecoderEE5clearEv
00000000 W _ZN8QPtrListIN12ImageManager12ImageDecoderEED0Ev
00000000 W _ZN8QPtrListIN12ImageManager12ImageDecoderEED1Ev
00000000 W _ZNK8QPtrListIN12ImageManager12ImageDecoderEE5countEv
00000000 V _ZTI8QPtrListIN12ImageManager12ImageDecoderEE
00000000 V _ZTIN12ImageManager12ImageDecoderE
00000000 V _ZTS8QPtrListIN12ImageManager12ImageDecoderEE
00000000 V _ZTSN12ImageManager12ImageDecoderE
00000000 V _ZTV8QPtrListIN12ImageManager12ImageDecoderEE
00000000 V _ZTVN12ImageManager12ImageDecoderE
00000020 b _ZZN12ImageManager12ImageDecoder8decodersEvE10s_decoders
RawImageDecoder.o:
00000300 t _GLOBAL__I__ZN12ImageManager15RAWImageDecoder7_decodeEP6QImageRK7QStringP5QSizei
00000008 b _ZGVZN12ImageManager15RAWImageDecoder12_mightDecodeERK7QStringE10extensions
         U _ZN12ImageManager12ImageDecoderC2Ev
         U _ZN12ImageManager12ImageDecoderD2Ev
00000000 T _ZN12ImageManager15RAWImageDecoder12_mightDecodeERK7QString
000003b0 T _ZN12ImageManager15RAWImageDecoder7_decodeEP6QImageRK7QStringP5QSizei
00000000 W _ZN12ImageManager15RAWImageDecoderD0Ev
00000000 W _ZN12ImageManager15RAWImageDecoderD1Ev
         U _ZTIN12ImageManager12ImageDecoderE
00000000 V _ZTIN12ImageManager15RAWImageDecoderE
00000000 V _ZTSN12ImageManager15RAWImageDecoderE
00000000 V _ZTVN12ImageManager15RAWImageDecoderE
00000020 b _ZZN12ImageManager15RAWImageDecoder12_mightDecodeERK7QStringE10extensions

-- 
Robert Krawitz                                     <rlk at alum.mit.edu>

Tall Clubs International  --  http://www.tall.org/ or 1-888-IM-TALL-2
Member of the League for Programming Freedom -- mail lpf at uunet.uu.net
Project lead for Gutenprint   --    http://gimp-print.sourceforge.net

"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton




More information about the Kphotoalbum mailing list