From: Greg J. <gv...@gm...> - 2015-09-03 18:55:13
|
Im working on MSYS2 which brings in all of the latest-and-greatest, ground-breaking compatibility-crushing versions, of which python is of course the worst offender. I'm trying to get the PyQT4 binding to work in MSYS2. All of the prerequisites are ready and I've patched the plplot/cmake scripting to accept the PYQT generated via configure-ng.py (as distinct from configure.py) http://pyqt.sourceforge.net/Docs/PyQt4/build_system.html#module-PyQt4.pyqtconfig The cygwin64 distribution has the up-to-date sip modules, but built with configure.py; it flies through the pyqt4 bindings without error. The problem I'm getting is that the generated .cpp files do not compile just to demonstrate, the first error: > ./sipplplot_pyqt4QtExtWidget.cpp: In member function 'void > sipQtExtWidget::disconnectNotify(const QMetaMethod&)': > ./sipplplot_pyqt4QtExtWidget.cpp:370:41: error: no matching function for > call to 'sipQtExtWidget::disconnectNotify(const QMetaMethod&)' > QtExtWidget::disconnectNotify(a0); > ^ > In file included from > D:/mingw/msys32/mingw32/include/qt4/QtCore/qiodevice.h:46:0, > from > D:/mingw/msys32/mingw32/include/qt4/QtCore/qdatastream.h:46, > from > D:/mingw/msys32/mingw32/include/qt4/QtCore/qmetatype.h:49, > from > D:/mingw/msys32/mingw32/include/qt4/QtCore/QMetaType:1, > from > D:/mingw/msys32/tmp/bld-32/bindings/qt_gui/pyqt4/sipAPIplplot_pyqt4.h:13, > from > D:/mingw/msys32/tmp/bld-32/bindings/qt_gui/pyqt4/sipplplot_pyqt4QtExtWidget.cpp:7: > D:/mingw/msys32/mingw32/include/qt4/QtCore/qobject.h:291:18: note: > candidate: virtual void QObject::disconnectNotify(const char*) > virtual void disconnectNotify(const char *signal); > ^ > D:/mingw/msys32/mingw32/include/qt4/QtCore/qobject.h:291:18: note: no > known conversion for argument 1 from 'const QMetaMethod' to 'const char*' =============== Note: On cygwin the generated code (sipplot_pyqt4QtExtWidget.cpp) is different: void sipQtExtWidget::disconnectNotify(const char*a0) { sip_gilstate_t sipGILState; PyObject *sipMeth; sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[0],sipPySelf,NULL,sipName_disconnectNotify); if (!sipMeth) { QtExtWidget::disconnectNotify(a0); return; } And it compiles without error. =============== So who's fault is it? is there a switch to be thrown in the qt configuration so that the headers are compatible with the different code generation? Regards, Greg |