[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#337423: kdelibs4-dev: Ambigous overload for 'operator+' error in kresources/manager.h



Hi,

my build command containts -DQT_NO_CAST_ASCII -DQT_NO_ASCII_CAST and
the command line looks like :

Making all in ui
make[2]: Entering directory `/home/xfacq/tmp/Dev/svndir/kdenetwork/kopete/libkopete/ui' if /bin/sh ../../../libtool --silent --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -DKDE_NO_COMPAT -DQT_NO_COMPAT -DQT_NO_CAST_ASCII -DQT_NO_ASCII_CAST -I../../../kopete/libkopete -I../../../kopete/libkopete -I../../../kopete/libkopete/avdevice -I../../../kopete/libkopete/ui -I../../../kopete/libkopete/ui -I../../../kopete/libkopete/private -I/usr/include/kde -I/usr/share/qt3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -D_FILE_OFFSET_BITS=64 -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -MT addresseeitem.lo -MD -MP -MF ".deps/addresseeitem.Tpo" -c -o addresseeitem.lo addresseeitem.cpp; \ then mv -f ".deps/addresseeitem.Tpo" ".deps/addresseeitem.Plo"; else rm -f ".deps/addresseeitem.Tpo"; exit 1; fi


But this "article" (http://lists.trolltech.com/qt-interest/2004-03/msg01059.html) explains why it's interesting to have this defines.


Xavier

Josh Metzler a écrit :
On Friday 04 November 2005 06:26 am, Xavier FACQ wrote:

Package: kdelibs4-dev
Version: 4:3.4.2-4
Severity: serious
Justification: no longer builds from source

When i try to build kopete from svn or using sources from apt-get
source, it always failed with this error :

/usr/include/kde/kresources/manager.h: In member function 'QStringList
KRES::Manager<T>::resourceTypeDescriptions() const':
/usr/include/kde/kresources/manager.h:338: error: ambiguous overload for
'operator+' in '" (" + ((const
KRES::Manager<T>*)this)->KRES::Manager<T>::mFactory->.KRES::Factory::typeDe
scription((* it))'
/usr/share/qt3/include/qstring.h:1072: note: candidates are: const
QString operator+(QChar, const QString&) <near match>
/usr/share/qt3/include/qstring.h:1080: note:                 const
QString operator+(char, const QString&) <near match>
make[2]: *** [addresseeitem.lo] Erreur 1
make[2]: Leaving directory
`/home/xfacq/tmp/Dev/svndir/kdenetwork/kopete/libkopete/ui'
make[1]: *** [all-recursive] Erreur 1
make[1]: Leaving directory
`/home/xfacq/tmp/Dev/svndir/kdenetwork/kopete/libkopete'
make: *** [all-recursive] Erreur 1


Could you somehow have QT_NO_CAST_ASCII defined while building? Looking in qstring.h, it should be using this operator+ on line 1050:
inline const QString operator+( const char *s1, const QString &s2 )

Your build doesn't appear to be finding that, though. Since the definition is wrapped in a #ifndef QT_NO_CAST_ASCII, it seems like having that defined while building could cause your build failure.

...

A quick grep -r through the kdenetwork sources shows that this appears to be defined in all the kopete Makefile.am's and Makefile.in's, but not in any other kdenetwork packages. So, I wonder how the buildd's built it?

Josh





Reply to: