[PyKDE] undefined symbol: QPrinter::setPrintRange

Patrick Stinson patrickkidd.lists at gmail.com
Tue May 23 01:33:04 BST 2006


This falls into basic compiler/linker theory.

This happens because when you link objects into an executable, it
links all the functions used in your program (setPrintRange in my
example) to their implementations. If the trolltech build left out the
implementation of setPrintRage, the linker will not be able to find it
when I "request" it in my example.

When you import a python module like PyQt4.QtGui it does the same
thing for all of the functions referenced in the module's code. This
is called dynamic, or run-time linking. The pyqt4 code generated by
sip references every function in the qt library (that is wrapped,
anyway), so when you import it, the linker binds (or links!) the
function reference (generated by sip in the python module) to the
actual binary data representing the function block (in the qt
library).

The C++ qt code containing QPrinter::setPrintRange was never linked
into the library, therefore it is a problem with their build system,
and has nothing to do with pyqt, and subsequently, Phil.


On 5/22/06, Andreas Pakulat <apaku at gmx.de> wrote:
> On 22.05.06 14:36:54, Patrick Stinson wrote:
> > On 5/22/06, Patrick Stinson <patrickkidd.lists at gmail.com> wrote:
> > >Hmm. I don't find PyQt4 to even come into the picture here, as the
> > >following code shows the same error whne compiled w/o qt3 support.
>
> Well, my gcc is happily linking PyQt4 against the Qt4 with no qt3
> support, however it doesn't link your example and I also get the missing
> symbol when I try to import QtGui...
>
> I have no idea why this happens, see my reply to Phil for information
> about my "build system"...
>
> Andreas
>
> --
> You will probably marry after a very brief courtship.
>
> _______________________________________________
> PyKDE mailing list    PyKDE at mats.imk.fraunhofer.de
> http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
>


-- 
Patrick Kidd Stinson
http://www.patrickkidd.com/
http://pkaudio.sourceforge.net/
http://pksampler.sourceforge.net/




More information about the PyQt mailing list