[PyKDE] undefined symbol: QPrinter::setPrintRange

Andreas Pakulat apaku at gmx.de
Mon May 22 23:48:47 BST 2006


On 22.05.06 22:40:44, Phil Thompson wrote:
> On Monday 22 May 2006 9:48 pm, Andreas Pakulat wrote:
> > On 22.05.06 12:16:03, Patrick Stinson wrote:
> > > yeah, this is TrollTech's problem. I find it hard to imagine that a
> > > stitch like -no-qt3support is broken in this ehemm...bugfix release.
> >
> > Well, this is just an "oversight", however it's one with a rather large
> > impact. There are other "oversights" found in Qt4.1, but not all of them
> > have such an impact.
> >
> > The problem for TT here is that adding the necessary macro here would
> > break either forward or backward binary compatibility.
> 
> Would it? It's not virtual.

Sorry, I confused the words of the support engineer. Here's his full
statement:

,----
| It turns out that the reason for this is that in qprinter.cpp,
| QPrinter::setPrintRange() and QPrinter::printRange() are guarded by:
| 
| #if defined(QT3_SUPPORT) && !(defined(QT_NO_PRINTDIALOG))
|         ...
| #endif // QT3_SUPPORT
| 
| However, they are not similarly guarded by QT3_SUPPORT in qprinter.h.
| 
| Our development team is aware of the issue and I believe this is getting
| changed going forward.  The risk of doing so is that forward
| compatibility will be broken in the case where QT3_SUPPORT is not
| defined.  But that is preferable to the current situation, where
| versions of Qt built with and without QT3_SUPPORT defined are not
| binary compatible over the documented API.
`----


> > However, using the 0519 snapshot of PyQt4 I can happily compile and
> > install with a Qt4 built with -no-qt3support (i.e. no printRange symbol
> > in libQtGui). I can't see wether Phil added anything (I don't know sip
> > to well)...
> 
> I haven't done anything so I would expect it to be still broken.

Interesting. The symbols printRange and setPrintRange are still missing
from libQtGui_debug.so.4.1.3 (I don't build non-debug non-qt3support
here) and I can happily build PyQt4. 

However, I just noticed: It's failing on import with the missing
symbols. I wonder which compiler/Os Patrick is using (I have Debian
unstable, gcc 4.0.3 and Python 2.4.3)

Andreas

-- 
Your reasoning powers are good, and you are a fairly good planner.




More information about the PyQt mailing list