Version: (using Devel) Compiler: mingw-gcc OS: MS Windows Installed from: Compiled sources I am getting the following error compiling smoke on a Windows XP system using the mingw utilities included with the QT 2009.4 SDK. I am using the HEAD revision on the branches/KDE/4.4/kdebindings branch. C:\data\qtruby\qt4-qtruby-kde4.4\build\smoke\qt\x_3.cpp:5466: error: base `QClipboard' with only non-default constructor in class without a constructor mingw32-make[2]: *** [smoke/qt/CMakeFiles/smokeqt.dir/x_3.obj] Error 1 mingw32-make[1]: *** [smoke/qt/CMakeFiles/smokeqt.dir/all] Error 2 mingw32-make: *** [all] Error 2 Here is the class that is created by the generator: class x_QClipboard : public QClipboard { public: void x_1(Smoke::Stack x) { // virtual const QMetaObject* metaObject() const const QMetaObject* xret = ((const x_QClipboard*)this)->QClipboard::metaObject(); x[0].s_class = (void*)xret; } void x_2(Smoke::Stack x) { // virtual void* qt_metacast(const char*) void* xret = this->QClipboard::qt_metacast((const char*)x[1].s_class); x[0].s_class = (void*)xret; } static void x_3(Smoke::Stack x) { // static QString tr(const char*, const char*) QString xret = QClipboard::tr((const char*)x[1].s_class,(const char*)x[2].s_class); x[0].s_class = (void*)new QString(xret); } static void x_4(Smoke::Stack x) { // static QString trUtf8(const char*, const char*) QString xret = QClipboard::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class); x[0].s_class = (void*)new QString(xret); } static void x_5(Smoke::Stack x) { // static QString tr(const char*, const char*, int) QString xret = QClipboard::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int); x[0].s_class = (void*)new QString(xret); } static void x_6(Smoke::Stack x) { // static QString trUtf8(const char*, const char*, int) QString xret = QClipboard::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int); x[0].s_class = (void*)new QString(xret); } void x_7(Smoke::Stack x) { // virtual int qt_metacall(QMetaObject::Call, int, void**) int xret = this->QClipboard::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class); x[0].s_int = xret; } void x_8(Smoke::Stack x) { // void clear(QClipboard::Mode) this->QClipboard::clear((QClipboard::Mode)x[1].s_enum); (void)x; // noop (for compiler warning) } void x_9(Smoke::Stack x) { // bool supportsSelection() const bool xret = ((const x_QClipboard*)this)->QClipboard::supportsSelection(); x[0].s_bool = xret; } void x_10(Smoke::Stack x) { // bool supportsFindBuffer() const bool xret = ((const x_QClipboard*)this)->QClipboard::supportsFindBuffer(); x[0].s_bool = xret; } void x_11(Smoke::Stack x) { // bool ownsSelection() const bool xret = ((const x_QClipboard*)this)->QClipboard::ownsSelection(); x[0].s_bool = xret; } void x_12(Smoke::Stack x) { // bool ownsClipboard() const bool xret = ((const x_QClipboard*)this)->QClipboard::ownsClipboard(); x[0].s_bool = xret; } void x_13(Smoke::Stack x) { // bool ownsFindBuffer() const bool xret = ((const x_QClipboard*)this)->QClipboard::ownsFindBuffer(); x[0].s_bool = xret; } void x_14(Smoke::Stack x) { // QString text(QClipboard::Mode) const QString xret = ((const x_QClipboard*)this)->QClipboard::text((QClipboard::Mode)x[1].s_enum); x[0].s_class = (void*)new QString(xret); } void x_15(Smoke::Stack x) { // QString text(QString&, QClipboard::Mode) const QString xret = ((const x_QClipboard*)this)->QClipboard::text(*(QString*)x[1].s_class,(QClipboard::Mode)x[2].s_enum); x[0].s_class = (void*)new QString(xret); } void x_16(Smoke::Stack x) { // void setText(const QString&, QClipboard::Mode) this->QClipboard::setText(*(const QString*)x[1].s_class,(QClipboard::Mode)x[2].s_enum); (void)x; // noop (for compiler warning) } void x_17(Smoke::Stack x) { // const QMimeData* mimeData(QClipboard::Mode) const const QMimeData* xret = ((const x_QClipboard*)this)->QClipboard::mimeData((QClipboard::Mode)x[1].s_enum); x[0].s_class = (void*)xret; } void x_18(Smoke::Stack x) { // void setMimeData(QMimeData*, QClipboard::Mode) this->QClipboard::setMimeData((QMimeData*)x[1].s_class,(QClipboard::Mode)x[2].s_enum); (void)x; // noop (for compiler warning) } void x_19(Smoke::Stack x) { // QImage image(QClipboard::Mode) const QImage xret = ((const x_QClipboard*)this)->QClipboard::image((QClipboard::Mode)x[1].s_enum); x[0].s_class = (void*)new QImage(xret); } void x_20(Smoke::Stack x) { // QPixmap pixmap(QClipboard::Mode) const QPixmap xret = ((const x_QClipboard*)this)->QClipboard::pixmap((QClipboard::Mode)x[1].s_enum); x[0].s_class = (void*)new QPixmap(xret); } void x_21(Smoke::Stack x) { // void setImage(const QImage&, QClipboard::Mode) this->QClipboard::setImage(*(const QImage*)x[1].s_class,(QClipboard::Mode)x[2].s_enum); (void)x; // noop (for compiler warning) } void x_22(Smoke::Stack x) { // void setPixmap(const QPixmap&, QClipboard::Mode) this->QClipboard::setPixmap(*(const QPixmap*)x[1].s_class,(QClipboard::Mode)x[2].s_enum); (void)x; // noop (for compiler warning) } void x_23(Smoke::Stack x) { // void changed(QClipboard::Mode) this->QClipboard::changed((QClipboard::Mode)x[1].s_enum); (void)x; // noop (for compiler warning) } void x_24(Smoke::Stack x) { // void selectionChanged() this->QClipboard::selectionChanged(); (void)x; // noop (for compiler warning) } void x_25(Smoke::Stack x) { // void findBufferChanged() this->QClipboard::findBufferChanged(); (void)x; // noop (for compiler warning) } void x_26(Smoke::Stack x) { // void dataChanged() this->QClipboard::dataChanged(); (void)x; // noop (for compiler warning) } void x_27(Smoke::Stack x) { // void connectNotify(const char*) this->QClipboard::connectNotify((const char*)x[1].s_class); (void)x; // noop (for compiler warning) } void x_28(Smoke::Stack x) { // bool event(QEvent*) bool xret = this->QClipboard::event((QEvent*)x[1].s_class); x[0].s_bool = xret; } static void x_29(Smoke::Stack x) { // static QString tr(const char*) QString xret = QClipboard::tr((const char*)x[1].s_class,(const char*)0); x[0].s_class = (void*)new QString(xret); } static void x_30(Smoke::Stack x) { // static QString trUtf8(const char*) QString xret = QClipboard::trUtf8((const char*)x[1].s_class,(const char*)0); x[0].s_class = (void*)new QString(xret); } void x_31(Smoke::Stack x) { // void clear() this->QClipboard::clear((QClipboard::Mode)QClipboard::Clipboard); (void)x; // noop (for compiler warning) } void x_32(Smoke::Stack x) { // QString text() const QString xret = ((const x_QClipboard*)this)->QClipboard::text((QClipboard::Mode)QClipboard::Clipboard); x[0].s_class = (void*)new QString(xret); } void x_33(Smoke::Stack x) { // QString text(QString&) const QString xret = ((const x_QClipboard*)this)->QClipboard::text(*(QString*)x[1].s_class,(QClipboard::Mode)QClipboard::Clipboard); x[0].s_class = (void*)new QString(xret); } void x_34(Smoke::Stack x) { // void setText(const QString&) this->QClipboard::setText(*(const QString*)x[1].s_class,(QClipboard::Mode)QClipboard::Clipboard); (void)x; // noop (for compiler warning) } void x_35(Smoke::Stack x) { // const QMimeData* mimeData() const const QMimeData* xret = ((const x_QClipboard*)this)->QClipboard::mimeData((QClipboard::Mode)QClipboard::Clipboard); x[0].s_class = (void*)xret; } void x_36(Smoke::Stack x) { // void setMimeData(QMimeData*) this->QClipboard::setMimeData((QMimeData*)x[1].s_class,(QClipboard::Mode)QClipboard::Clipboard); (void)x; // noop (for compiler warning) } void x_37(Smoke::Stack x) { // QImage image() const QImage xret = ((const x_QClipboard*)this)->QClipboard::image((QClipboard::Mode)QClipboard::Clipboard); x[0].s_class = (void*)new QImage(xret); } void x_38(Smoke::Stack x) { // QPixmap pixmap() const QPixmap xret = ((const x_QClipboard*)this)->QClipboard::pixmap((QClipboard::Mode)QClipboard::Clipboard); x[0].s_class = (void*)new QPixmap(xret); } void x_39(Smoke::Stack x) { // void setImage(const QImage&) this->QClipboard::setImage(*(const QImage*)x[1].s_class,(QClipboard::Mode)QClipboard::Clipboard); (void)x; // noop (for compiler warning) } void x_40(Smoke::Stack x) { // void setPixmap(const QPixmap&) this->QClipboard::setPixmap(*(const QPixmap*)x[1].s_class,(QClipboard::Mode)QClipboard::Clipboard); (void)x; // noop (for compiler warning) } static void x_41(Smoke::Stack x) { // static const QMetaObject staticMetaObject x[0].s_class = (void*)&QClipboard::staticMetaObject; } static void x_42(Smoke::Stack x) { x[0].s_enum = (long)QClipboard::Clipboard; } static void x_43(Smoke::Stack x) { x[0].s_enum = (long)QClipboard::Selection; } static void x_44(Smoke::Stack x) { x[0].s_enum = (long)QClipboard::FindBuffer; } static void x_45(Smoke::Stack x) { x[0].s_enum = (long)QClipboard::LastMode; } static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) { switch(xtype) { case 174: //QClipboard::Mode switch(xop) { case Smoke::EnumNew: xdata = (void*)new QClipboard::Mode; break; case Smoke::EnumDelete: delete (QClipboard::Mode*)xdata; break; case Smoke::EnumFromLong: *(QClipboard::Mode*)xdata = (QClipboard::Mode)xvalue; break; case Smoke::EnumToLong: xvalue = (long)*(QClipboard::Mode*)xdata; break; } break; } } };
Compiling with gcc4 resolved this error. Is gcc3 not supported for the new kdebindings generator?
I never tried it with gcc3. It was only tested with gcc4 and MSVC to this point. gcc3 is quite dated by now, so I think you should stick with gcc4.
Closing, GCC 3.x has not been used for many years.