[PyKDE] PyQT on Mandrake 9.1 issues

Gerard Vermeulen gvermeul at grenoble.cnrs.fr
Sun Apr 6 12:05:01 BST 2003


On Sun, 6 Apr 2003 09:23:41 +0100 (BST)
Damien Bateman <pykde at yahoo.co.uk> wrote:

>  --- Gerard Vermeulen <gvermeul at grenoble.cnrs.fr>
> wrote:
> > did you regenerate the *.{cpp,h} files (by running
> > build.py again)?
> > 
> > The output of sip depends on some of the defines.
> 
> Yes, I sure did. Since my first post I've been looking
> at a working install on my other machine but it uses a
> version of libqt-mt.so that I compiled from source.
> The first problem with my Mandrake 9.1 install is, as
> everyone seems to know now, it only supports the SGI
> style as a plugin. Doing an objdump -T on the working
> version of libqt-mt.so shows the presence of the
> undefined symbol that is causing a problem when I try
> to import qt in the python interpreter
> (_ZNK9QSGIStyle9classNameEv).
> 
> That is why it seems necessary to add the #define
> QT_NO_STYLE_SGI 1 directive in qconfig.h (yes, I
> mistakenly referred to it as qtconfig.h in my previous
> post). After adding that line, I went right back to
> the start and made and installed sip. I am able to run
> the build script in the PyQT source dir but as soon as
> I try to make the libraries I get a series of compile
> errors beginning with:
>
This should show up in the 'features' file that is 
created by build.py. It should contain a line like:
-x Qt_STYLE_SGI

This should prevent sip from creating the SGI_STYLE related
files. Did you try a clean build? (I do not know if make gets
confused by those files generated in previous tries, but it
may help).

>
> g++ -c -pipe -w -O2 -fomit-frame-pointer -pipe
> -march=i586 -mcpu=pentiumpro -D_REENTRANT -fPIC 
> -DSIP_MAKE_MODULE_DLL -DQT_NO_DEBUG
> -DQT_THREAD_SUPPORT -I/usr/lib/qt3/mkspecs/default -I.
> -I. -I/usr/include/python2.2 -I/usr/lib/qt3/include -o
> qtcmodule.o qtcmodule.cpp
> In file included from qtcmodule.cpp:195:
> sipqtQSGIStyle.h:50: parse error before `{' token
> sipqtQSGIStyle.h:53: destructors must be member
> functions
> sipqtQSGIStyle.h:57: non-member function `QVariant
> property(const char*)' cannot have `const' method
> qualifier
> sipqtQSGIStyle.h:64: non-member function `QPixmap
> stylePixmap(QStyle::StylePixmap, const QWidget*, const
> QStyleOption&)' cannot have `const' method qualifier
> 
> This is why, as an experiment and no doubt unwisely
> (sorry to mess with your work Phil), I then went into
> $PYQTDIR/qt and modified qtcmodule.cpp by adding some
> #ifndef QT_NO_STYLE_SGI tests around the relevant SGI
> style related code. This let me make the PyQt wrapper
> libraries but resulted in  a different undefined
> symbol error (related to the QSettings class -
> _Z16sipNew_QSettingsP7_objectS0_). Looking at the
> dependencies of libqtcmodule.so gave me this:
> 
>        libsip.so.9 => not found
>
This is harmless: the 'import libsip' in qt.py & friends
make that the libsip gets loaded (ldd libqtmodule.so gives
the same result on my system).
>
>         libqt-mt.so.3 =>
> /usr/lib/qt3/lib/libqt-mt.so.3 (0x40249000)
>         libXext.so.6 => /usr/X11R6/lib/libXext.so.6
> (0x408b4000)
>         libX11.so.6 => /usr/X11R6/lib/libX11.so.6
> (0x408c2000)
>         libpthread.so.0 => /lib/i686/libpthread.so.0
> (0x409a1000)
>         libstdc++.so.5 => /usr/lib/libstdc++.so.5
> (0x409f1000)
>         libm.so.6 => /lib/i686/libm.so.6 (0x40aa3000)
>         libgcc_s.so.1 => /lib/libgcc_s.so.1
> (0x40ac5000)
>         libc.so.6 => /lib/i686/libc.so.6 (0x40acf000)
>         libmng.so.1 => /usr/lib/libmng.so.1
> (0x40c02000)
>         libjpeg.so.62 => /usr/lib/libjpeg.so.62
> (0x40c4a000)
>         libpng.so.3 => /usr/lib/libpng.so.3
> (0x40c6b000)
>         libz.so.1 => /lib/libz.so.1 (0x40c90000)
>         libGL.so.1 => /usr/lib/libGL.so.1 (0x40c9e000)
>         libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6
> (0x40d06000)
>         libXrender.so.1 =>
> /usr/X11R6/lib/libXrender.so.1 (0x40d1c000)
>         libXft.so.2 => /usr/X11R6/lib/libXft.so.2
> (0x40d24000)
>         libfreetype.so.6 => /usr/lib/libfreetype.so.6
> (0x40d36000)
>         libSM.so.6 => /usr/X11R6/lib/libSM.so.6
> (0x40d84000)
>         libICE.so.6 => /usr/X11R6/lib/libICE.so.6
> (0x40d8d000)
>         libdl.so.2 => /lib/libdl.so.2 (0x40da5000)
>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2
> (0x80000000)
>         liblcms.so.1 => /usr/lib/liblcms.so.1
> (0x40da8000)
>         libGLcore.so.1 => /usr/lib/libGLcore.so.1
> (0x40dc4000)
>         libXt.so.6 => /usr/X11R6/lib/libXt.so.6
> (0x41274000)
>         libfontconfig.so.1 =>
> /usr/lib/libfontconfig.so.1 (0x412c6000)
>         libexpat.so.0 => /usr/lib/libexpat.so.0
> (0x412ed000)
> 
> Now I don't know too much about the linking stage, but
> the fact that "libsip.so.9 => not found" appears seems
> rather concerning. Why would this be happening?
> 
> Thanks again,
> 
> Damien
> 
> __________________________________________________
> Yahoo! Plus
> For a better Internet experience
> http://www.yahoo.co.uk/btoffer
> 


-- 
http://www.nonviolence.org/iraq/




More information about the PyQt mailing list