[PyKDE] PyKDE-3.11 final release
Jim Bublitz
jbublitz at nwinternet.com
Mon Jun 14 09:09:01 BST 2004
On Sunday 13 June 2004 22:13, Troy Melhase wrote:
> On Saturday 12 June 2004 11:55 am, Jim Bublitz wrote:
> In file included from sipkdecoreKConfigSkeletonItemEnum.h:33,
> from sipkdecorepart0.cpp:54:
> sipkdecoreQValueList.h:61:1: warning: "sipForceConvertTo_QValueList_1800"
> redefined
> In file included from sipkdecoreKConfigBase.h:42,
> sipqtQValueList.h:38:1: warning: this is the location of the previous
> definition
> In file included from sipkdecoreKConfigSkeletonItemEnum.h:33,
> from sipkdecorepart0.cpp:54:
> sipkdecoreQValueList.h:62:1: warning: "sipConvertTo_QValueList_1800"
> redefined In file included from sipkdecoreKConfigBase.h:42,
> from sipkdecoreKConfig.h:31,
> from sipkdecoreKConfigSkeletonItem.h:33,
> from sipkdecoreKConfigSkeletonItemIntList.h:31,
> from sipkdecorepart0.cpp:36:
> sipqtQValueList.h:39:1: warning: this is the location of the previous
> definition
> In file included from sipkdecoreKConfigSkeletonItemEnum.h:33,
> from sipkdecorepart0.cpp:54:
> sipkdecoreQValueList.h:63:1: warning: "sipConvertFrom_QValueList_1800"
> redefined
> In file included from sipkdecoreKConfigBase.h:42,
> from sipkdecoreKConfig.h:31,
> from sipkdecoreKConfigSkeletonItem.h:33,
> from sipkdecoreKConfigSkeletonItemIntList.h:31,
> from sipkdecorepart0.cpp:36:
> sipqtQValueList.h:40:1: warning: this is the location of the previous
> definition
All of the above are the same problem: they result from redefining
QValueList<int> (which is defined in PyQt) as either
QValueList<KConfigSkeleton::ItemEnum::Choice> or QValueList<pid_t>. The first
is an enum, the second a typedef (from int I believe). The problem is that
sip doesn't recognize enum <=> int in this case, or that pid_t <=> int in the
kconfigbase.sip case, but g++ is seeing them all identically.
It shouldn't be hard to fix this (I should be able to give each type variation
a unique name/definition), but it's more steps than I'd want to write out in
an email.
> In file included from sip/kdecore/kmanagerselection.sip:69,
> from sipkdecorepart0.cpp:74:
> /usr/qt/3/include/qdockwindow.h:88: error: parse error before numeric
> constant /usr/qt/3/include/qdockwindow.h:88: error: missing ';' before
> right brace /usr/qt/3/include/qdockwindow.h:90: error: parse error before
Please check kmanagerselection.sip and make sure all classes have the
following %TypeHeaderCode blocks:
%TypeHeaderCode
#include <qdockwindow.h>
#include <qvariant.h>
#include <kmanagerselection.h>
%End
although from the line numbers in the error msg it appears they do. This
appears to be a problem with the header files for kmanagerselection.h.
Sticking in the q*.h files (which usually is unnecessary) fixed it here. For
the moment the only thing I can suggest is going into
sip/kdecore/kdecoremod.sip.in and commenting out the line as shown:
// %Include kmanagerselection.sip
which is probably what I'll end up doing for now. It takes a lot of time
(recompiles) to figure these out, since they're usually just trial and error.
I believe I only had this problem only when building with the '-i' switch to
configure.py (no concatenation of C++ files).
I can't duplicate either problem here, but I think I can come up with a
solution that works generally. I'll need to do some testing on it though, so.
I'll probably get to it sometime tomorrow. I'll release a new version
(PyKDE-3.11.1) when I have that all completed.
Since I don't get these errors, I'd be curious to know what distribution and
gcc version you're running.
Jim
More information about the PyQt
mailing list