[PyQt] configuring pykde4, error

Jim Bublitz jbublitz at nwinternet.com
Wed May 14 21:14:43 BST 2008


On Wednesday 14 May 2008 12:09, Darren Dale wrote:
> On Wednesday 14 May 2008 01:58:37 pm Jim Bublitz wrote:
> > On Wednesday 14 May 2008 10:27, Darren Dale wrote:
> > > I am working on compiling pykde4-4.0.2-1. I have installed qt-4.4_rc1
> > > (I know the final version is out, gentoo hasnt included it yet in their
> > > package manager) sip-4.7.5, qscintilla-2.2, and PyQt4-4.4.
> > >
> > > When I run configure.py, I get an error:
> > >
> > > Generating the C++ source for the kdecore module...
> > > sip: sip/kdecore/typedefs.sip:263: %MappedType template for this type
> > > has already been defined
> > > Error: Unable to create the C++ code.
> > >
> > > Has anyone been able to build PyKDE-4.0.2-1 with the most recent
> > > sip/QScintilla/Qt/PyQt4 environment? Is there a PyKDE-4.0.3 available?
> > > (kubuntu lists it in their package manager, but I havent been able to
> > > find the sources.)
> >
> > I have my development machine on a different project at the moment, so I
> > can't check this explicitly, but the likely problem is that PyQt4 has
> > added a definition for a template type that wasn't provided previously.
> >
> > The fix would be to comment out (/* .. */, not Python comment) the entire
> > %MappedType block begining at the line indicated (including any preceding
> > template annotation) in sip/kdecore/typedefs.sip.
>
> Thank you Jim, it looks like commenting that part out worked. I also had to
> do:
>
> cp extra/kde402 extra/kde403
>
> and for good measure:
>
> cp extra/kde402 extra/kde404
>
> in order to avoid some errors like:
> In file included from sipkdecoreQPair.cpp:7:
> sip/kdecore/ksycocafactory.sip:26:28: error: ksycocafactory.h: No such file
> or directory
>
> However, now when I run make I get an error that I am unable to diagnose on
> my own again:
>
> g++ -c -Wno-deprecated-declarations -pipe -fPIC -O2 -march=k8 -mtune=k8
> -pipe -fomit-frame-pointer -Wall -W -D_REENTRANT -DQT_NO_DEBUG
> -DQT_CORE_LIB -DQT_GUI_LIB -I. -I../extra/kde403 -I/usr/kde/4.0/include
> -I/usr/kde/4.0/include/QtCore -I/usr/kde/4.0/include/QtGui
> -I/usr/kde/4.0/include/QtNetwork -I/usr/kde/4.0/include/sonnet
> -I/usr/include/python2.5 -I/usr/share/qt4/mkspecs/default
> -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4
> -I/usr/X11R6/include -o sipkdecoreKCharMacroExpander.o
> sipkdecoreKCharMacroExpander.cpp
> /usr/kde/4.0/include/kmacroexpander.h: In member function
> 'KMacroExpanderBase& KMacroExpanderBase::operator=(const
> KMacroExpanderBase&)':
> /usr/kde/4.0/include/kmacroexpander.h:39: error: non-static const
> member 'KMacroExpanderBasePrivate* const KMacroExpanderBase::d', can't use
> default assignment operator
> /usr/kde/4.0/include/kmacroexpander.h: In member function
> 'KCharMacroExpander& KCharMacroExpander::operator=(const
> KCharMacroExpander&)':
> /usr/kde/4.0/include/kmacroexpander.h:224: note: synthesized
> method 'KMacroExpanderBase& KMacroExpanderBase::operator=(const
> KMacroExpanderBase&)' first required here
> sipkdecoreKCharMacroExpander.cpp: In function 'void
> assign_KCharMacroExpander(void*, const void*)':
> sipkdecoreKCharMacroExpander.cpp:279: note: synthesized
> method 'KCharMacroExpander& KCharMacroExpander::operator=(const
> KCharMacroExpander&)' first required here
> make[1]: *** [sipkdecoreKCharMacroExpander.o] Error 1
> make[1]: Leaving directory `/home/share/packages/PyKDE4-4.0.2-1/kdecore'
> make: *** [all] Error 2
>
> I'm running 64-bit gentoo linux, gcc-4.2.3. Do you have any advice?


That's an odd one - check sip/kdecore/kmacroexpander.sip for any instances of 
"operator =" and remove them - shouldn't be there, but they may get picked up 
in the KDE svn version by mistake (automatically generated code). If you find 
those, remove them.

Otherwise, go into sip/kdecore/kdecoremod.sip.in and comment out (//) the line

%Include kmacroexpander.sip

It's not a particularly useful set of classes and nothing else depends on it 
in PyKDE as far as I know.

I actually looked at the code for this one - forgot I could just mount the 
PyKDE partition and view it.

Jim



More information about the PyQt mailing list