Pregunta

Acabo de compilar la última vista previa de Qt4.6 en Snow Leopard en 64 bits sin mayores problemas.

http: // qt .nokia.com / developer / qt-4.6-technology-preview # download-the-qt-4-1

Ahora, estoy tratando de hacer lo mismo para PyQt4.6 con la última instantánea del sitio web de River Bank. Sin embargo, el compilador se cierra con el siguiente problema:

g++ -c -pipe -fPIC -arch x86_64 -O2 -Wall -W -DNDEBUG -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I/Users/drufat/Downloads/PyQt-mac-gpl-4.6-snapshot-20090914/qpy/QtCore -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I/usr/local/Trolltech/Qt-4.6.0/mkspecs/default -I/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers -I/usr/local/Trolltech/Qt-4.6.0/include -F/Users/drufat/Downloads/PyQt-mac-gpl-4.6-snapshot-20090914/qpy/QtCore -F/usr/local/Trolltech/Qt-4.6.0/lib -o sipQtCoreQResource.o sipQtCoreQResource.cpp
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h: In copy constructor ‘QResource::QResource(const QResource&)’:
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:180: error: ‘QScopedPointer<T, Cleanup>::QScopedPointer(const QScopedPointer<T, Cleanup>&) [with T = QResourcePrivate, Cleanup = QScopedPointerDeleter<QResourcePrivate>]’ is private
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qresource.h:59: error: within this context
sipQtCoreQResource.cpp: In constructor ‘sipQResource::sipQResource(const QResource&)’:
sipQtCoreQResource.cpp:78: note: synthesized method ‘QResource::QResource(const QResource&)’ first required here 
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h: In static member function ‘static void QScopedPointerDeleter<T>::cleanup(T*) [with T = QResourcePrivate]’:
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:100:   instantiated from ‘QScopedPointer<T, Cleanup>::~QScopedPointer() [with T = QResourcePrivate, Cleanup = QScopedPointerDeleter<QResourcePrivate>]’
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qresource.h:59:   instantiated from here
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:59: error: invalid application of ‘sizeof’ to incomplete type ‘QResourcePrivate’ 
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:59: error: creating array with negative size (‘-0x00000000000000001’)
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:60: error: invalid application of ‘sizeof’ to incomplete type ‘QResourcePrivate’ 
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:60: error: creating array with negative size (‘-0x00000000000000001’)
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:62: warning: possible problem detected in invocation of delete operator:
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:54: warning: ‘pointer’ has incomplete type
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qresource.h:56: warning: forward declaration of ‘struct QResourcePrivate’
/usr/local/Trolltech/Qt-4.6.0/lib/QtCore.framework/Headers/qscopedpointer.h:62: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.

¿Es este un error con PyQt4 tratando de acceder a un miembro privado de una clase Qt4? ¿Alguien ha compilado PyQt4 en Snow Leopard con éxito?

¿Fue útil?

Solución

Acabo de obtener PyQt 4.6.2 trabajando con Python 2.6.1 de 64 bits. Publiqué las instrucciones aquí: http: / /mpastell.com/2009/11/24/pyqt-4-6-2-with-snow-leopard/

Otros consejos

En los registros de cambios veo a Phil (mantenedor de PyQt) ha publicado correcciones ayer en las instantáneas de desarrollo específicamente para Snow Leopard:

  

14/09/2009 12:12:49 phil Más   correcciones para Snow Leopard en 64 bits   sistemas. Adicional   QObject.pyqtConfigure ().

¿Está utilizando la versión de PyQt de ayer?

Este hilo en la lista de correo también es particularmente interesante.

Los problemas de compilación de PyQt parecen ser causados ??por las compilaciones predeterminadas de 64 bits de Snow Leopards y la versión mixta de Python de 64/32 bits que se incluye.

Si las cosas continúan yendo mal, enviaría sus problemas a esta lista de correo (para que puedan solucionarse, con suerte) e intente reconstruir (temporalmente) Qt y PyQt (y posiblemente Python) de una manera de 32 bits (con el indicador del compilador -m32) si necesita que funcione ahora.

Es posible que desee utilizar PyQt del proyecto homebrew: compilación directa, dependencias administradas.

Ejecutar bien en mi MBP Unibody, todos de 64 bits.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top