[Libreoffice] Compilation error in svx undefined reference to `XPropertyList::operator delete(void*)'
Michael Meeks
michael.meeks at novell.com
Mon Sep 26 01:58:43 PDT 2011
Hi Julien,
On Sun, 2011-09-25 at 01:40 -0700, julien2412 wrote:
> /home/maryline/compile-libreoffice/libo/workdir/unxlngi6/CxxObject/svx/source/tbxctrls/fillctrl.o:
> In function `~XBitmapList':
> /home/maryline/compile-libreoffice/libo/svx/inc/svx/xtable.hxx:469:
> undefined reference to `XPropertyList::operator delete(void*)'
> /home/maryline/compile-libreoffice/libo/svx/inc/svx/xtable.hxx:469:
> undefined reference to `XPropertyList::operator delete(void*)'
Riight - that is odd / annoying. The idea here is (by hiding new /
delete) that we force people to use the static factory function and thus
not shoot the ref-counting in the foot :-) as a quick hack around just
removing those operators would work, and sorry to break it for you ...
> /usr/bin/ld:
> /home/maryline/compile-libreoffice/libo/workdir/unxlngi6/LinkTarget/Library/libsvxlo.so:
> hidden symbol `XPropertyList::operator delete(void*)' isn't defined
So - clearly the symbol is in fact defined; and it -should- be defined
in the same module that that destructor is defined in.
> I don't know if a mk file must be changed or if delete operator must be
> implemented. If it's the case, XBitmapList is not the only one, there are
> too for the classes :
Well - the delete operator is implemented - cf. above.
> In the same time, if there really was something broken with this, all the
> tinderboxes should be red.
Hah - so, I -think- the problem is that XBitmapList implements it's
destructor in-line, and (somehow) despite this not being called the
linker is trying to link an implementation of it into libsvxlo.so when
the destructor is hidden inside libsvxcorelo.so ;-)
> (hope I don't have to do again a "make clean && make")
I'll bin the in-lined destructor in the header and that should fix it
for you.
Thanks for the nice clear report,
ATB,
Michael.
--
michael.meeks at suse.com <><, Pseudo Engineer, itinerant idiot
More information about the LibreOffice
mailing list