[PyKDE] PyKDE-snapshot20060118 runtime failure when built with
jbublitz at nwinternet.com
Sun Jan 22 23:15:46 GMT 2006
On Sunday 22 January 2006 13:57, Danny Pansters wrote:
> gcc version 2.95.4 <-- This is on FreeBSD4
> Post-install it imports dcop*.py to byte compile them (sorry if spacing may
> be messed up a bit):
> ( install -c -o root -g wheel -m 555
>uic /usr/local/bin && cd /usr/local/lib/python2.4/site-packages
> && /usr/local/bin/python -c "import pykdeconfig, dcopexport, dcopext"
> && /usr/local/bin/python -O -c "import pykdeconfig, dcopexport, dcopext" )
> Traceback (most recent call last):
> File "<string>", line 1, in ?
> File "dcopexport.py", line 53, in ?
> from kdecore import dcop_add, dcop_next
> ImportError: ./kdecore.so: Undefined symbol
>798" *** Error code 1
> Hmm. So it builds alright but if this already goes wrong it would indicate
> (at least one, probably more) runtime problems when built with gcc295. Note
> KDE, sip, etc are up-to-date.
This is pretty weird, as PyItemDouble should be resolved within kdecore.so
itself. The C++ code looks like:
static PyObject *meth_KConfigSkeleton_addItemDouble(PyObject *sipSelf,
class PyItemDouble : public KConfigSkeleton::ItemDouble
It's no different than defining a struct local to a method, and if gcc can
compile it, it should be able to link it correctly I'd think.
Are you sure the new kdecore.so has been installed before you're trying to
> I could try forcing the build on my gcc34 system to use gcc295 and I should
> get the same troubles if that's of any use (this log was sent to me). Are
> any of the Linux folks still making packages for gcc295 based distros?
> Obviously I'm also asking because the KConfigSkeleton stuff has been
> reworked, kinda hoping for an easy fix.
What I'd try first is moving the class declaration outside of the method,
which isn't hard, but requires a lot of editing.
A couple things to check:
1. Make sure the new kdecore.so is installed before compiling.
2. Run python importTest.py from the top level PyKDE directory - that should
catch all unresolved symbols (but usually only the first on any given run).
3. In sip/kconfigskeleton.sip, comment out addItemDouble (including everything
from %MethodCode to %End) and rebuild/recompile PyKDE:
python configure.py -lkdecore && make && su -c"make install"
will rebuild/recompile only kdecore (the switch is a lower case L). If it's a
problem with the syntax, another addItem* or Item* ctor should be unresolved
the next time you try to import kdecore.
I don't have a gcc 2.95 version up, but I'll fire up an older box and see if I
have it there (have to do it to backtest to KDE 3.0 anyway).
I'll see what I can figure out.
More information about the PyQt