> -----Original Message----- > From: Peter Kümmel [mailto:[EMAIL PROTECTED] > Sent: terça-feira, 27 de Junho de 2006 13:26 > To: [email protected] > Subject: Re: windows build > > I think now I understand a little bit > better what's going on: > > QList<QVariable> is automatically instantiated > because of the inheritance in qdbusmessage.h > > But when compiling kdecore, this is not known, > so the compiler instantiates QList<QVariable> > again, and we get the linker error. > > To fix the linker error we just have to show > the compiler qdbusmessage.h and all is fine. > > > $ svn diff kconfigbase.h > Index: kconfigbase.h > =================================================================== > --- kconfigbase.h (revision 555414) > +++ kconfigbase.h (working copy) > @@ -27,6 +27,7 @@ > #include <qvariant.h> > #include <kdelibs_export.h> > #include <kdebug.h> > +#include <dbus/qdbusmessage.h> > > template <typename KT, typename KV> class QMap; > class QString; > > > And indeed this solves the linker error. > > > But maybe > > +#ifdef Q_OS_WIN > +template class KDE_IMPORT QList<QVariant>; > +#endif > > is the better solution because including qdbusmessage.h > is expensive. qdbusmessage.h includes qdbusmacros.h and > there we have: > > #ifdef Q_CC_MSVC > #include <QtCore/qlist.h> > #include <QtCore/qset.h> > #include <QtCore/qhash.h> > #include <QtCore/qvector.h> > class QDBusType; > inline uint qHash(const QVariant&) { Q_ASSERT(0); return 0; } > inline uint qHash(const QDBusType&) { Q_ASSERT(0); return 0; } > #endif > > > and I could remember that this makes other problems.
I think it is your call ;) Thanks Paulo _______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
