[PyQt] Error while installing PyQtMobility 1.0 on Ubuntu 10.10
Phil Thompson
phil at riverbankcomputing.com
Tue Apr 19 17:12:06 BST 2011
On Tue, 19 Apr 2011 16:46:47 +0100, David Boddie <david at boddie.org.uk>
wrote:
> On Tue Apr 19 08:06:05 BST 2011, Phil Thompson wrote:
>
>> Can you try with the current SIP snapshot.
>
> OK, the code generation appears to work with the latest SIP snapshot and
> PyQtMobility 1.0, building against Qt Mobility 1.1.1. However, I
encounter
> the following error when building the QtLocation module:
>
> make[1]: Entering directory
> `/home/dboddie/Software/PyQtMobility-gpl-1.0/QtLocation'
> g++ -c -pipe -fPIC -O2 -Wall -W -D_REENTRANT -DNDEBUG
> -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG -DQT_CORE_LIB
> -DQT_GUI_LIB -I. -I/usr/local/Trolltech/Qt-4.7.2/include/QtMobility
> -I/usr/local/Trolltech/Qt-4.7.2/include/QtLocation
> -I/usr/local/Trolltech/Qt-4.7.2/include/python2.7
> -I/usr/local/Trolltech/Qt-4.7.2/mkspecs/default
> -I/usr/local/Trolltech/Qt-4.7.2/include/QtCore
> -I/usr/local/Trolltech/Qt-4.7.2/include/QtGui
> -I/usr/local/Trolltech/Qt-4.7.2/include -I/usr/X11R6/include -o
> sipQtLocationQList0100QGeoRouteRequestFeatureType.o
> sipQtLocationQList0100QGeoRouteRequestFeatureType.cpp
> In file included
> from /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qmetatype.h:45,
>
> from /usr/local/Trolltech/Qt-4.7.2/include/QtCore/QMetaType:1,
> from sipAPIQtLocation.h:27,
> from
> sipQtLocationQList0100QGeoRouteRequestFeatureType.cpp:21:
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qglobal.h: In instantiation
> of ‘QTypeInfo<QtMobility::QGeoCoordinate>’:
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:417: instantiated
> from ‘void QList<T>::node_destruct(QList<T>::Node*, QList<T>::Node*)
[with
> T
> = QtMobility::QGeoCoordinate]’
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:742: instantiated
> from ‘void QList<T>::free(QListData::Data*) [with T =
> QtMobility::QGeoCoordinate]’
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:717: instantiated
> from ‘QList<T>::~QList() [with T = QtMobility::QGeoCoordinate]’
> /usr/local/Trolltech/Qt-4.7.2/include/QtLocation/qgeorouterequest.h:113:
> instantiated from here
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qglobal.h:1986: error:
> invalid
> application of ‘sizeof’ to incomplete type ‘QtMobility::QGeoCoordinate’
> In file included
> from /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qobject.h:50,
>
> from /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qiodevice.h:46,
>
> from /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qdatastream.h:46,
>
> from /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qmetatype.h:49,
>
> from /usr/local/Trolltech/Qt-4.7.2/include/QtCore/QMetaType:1,
> from sipAPIQtLocation.h:27,
> from
> sipQtLocationQList0100QGeoRouteRequestFeatureType.cpp:21:
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h: In member function
> ‘void
> QList<T>::node_destruct(QList<T>::Node*, QList<T>::Node*) [with T =
> QtMobility::QGeoCoordinate]’:
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:742: instantiated
> from ‘void QList<T>::free(QListData::Data*) [with T =
> QtMobility::QGeoCoordinate]’
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:717: instantiated
> from ‘QList<T>::~QList() [with T = QtMobility::QGeoCoordinate]’
> /usr/local/Trolltech/Qt-4.7.2/include/QtLocation/qgeorouterequest.h:113:
> instantiated from here
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:418: warning:
> possible
> problem detected in invocation of delete operator:
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:418: warning:
invalid
> use
> of incomplete type ‘struct QtMobility::QGeoCoordinate’
> /usr/local/Trolltech/Qt-4.7.2/include/QtLocation/qgeorouterequest.h:55:
> warning: forward declaration of ‘struct QtMobility::QGeoCoordinate’
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:418: note: neither
> the
> destructor nor the class-specific operator delete will be called, even
if
> they are declared when the class is defined.
> /usr/local/Trolltech/Qt-4.7.2/include/QtCore/qlist.h:420: error: invalid
> use
> of incomplete type ‘struct QtMobility::QGeoCoordinate’
> /usr/local/Trolltech/Qt-4.7.2/include/QtLocation/qgeorouterequest.h:55:
> error:
> forward declaration of ‘struct QtMobility::QGeoCoordinate’
> make[1]: *** [sipQtLocationQList0100QGeoRouteRequestFeatureType.o] Error
1
> make[1]: Leaving directory
> `/home/dboddie/Software/PyQtMobility-gpl-1.0/QtLocation'
> make: *** [all] Error 2
>
> Previously, I've worked around this by "fixing" the qgeorouterequest.h
> header file, but one of the Qt Mobility developers suggested that the
> failure
> wasn't a Qt Mobility issue.
I've had to "fix" 5 different .h files with v1.1.1. The problem is that
these files aren't self contained, i.e. they don't #include other files
they depend on. At the very least these are documentation bugs that don't
specify all the files you have to #include to use a particular class - but
they are really bugs in the .h files. (Quality control isn't what it used
to be.)
I'll re-test my build and make sure I'm using un-fixed versions - I
probably just need to #include additional files in the handwritten code.
Phil
More information about the PyQt
mailing list