Question

Je viens de compiler le dernier aperçu de Qt4.6 sur Snow Leopard en 64 bits sans aucun problème majeur.

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

Maintenant, j'essaie de faire la même chose pour PyQt4.6 avec le dernier instantané du site Web River Bank. Cependant, le compilateur pose le problème suivant:

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.

Est-ce une erreur avec PyQt4 qui tente d’accéder à un membre privé d’une classe Qt4? Quelqu'un at-il compilé PyQt4 sur Snow Leopard avec succès?

Était-ce utile?

La solution

Je viens de faire fonctionner PyQt 4.6.2 avec le Python 2.6.1 64 bits. J'ai posté les instructions ici: http: / /mpastell.com/2009/11/24/pyqt-4-6-2-with-snow-leopard/

Autres conseils

Dans les journaux des modifications, je vois Phil (responsable de PyQt) a publié des correctifs hier dans les instantanés de développement spécifiquement pour Snow Leopard:

  

2009/09/14 12:12:49 phil Plus   correctifs pour Snow Leopard sur 64 bits   systèmes. Ajoutée   QObject.pyqtConfigure ().

Utilisez-vous la version de PyQt d’hier?

Ce fil de la liste de diffusion est également particulièrement intéressant.

Les problèmes de compilation PyQt semblent provenir de la compilation 64 bits par défaut de Snow Leopards et de la version 64/32 bits mixte de Python avec laquelle il est livré.

Si les problèmes persistent, je soumettrais vos problèmes à cette liste de diffusion (afin qu'ils puissent être réparés - si tout se passe bien) et essaie (temporairement) de reconstruire Qt et PyQt (et éventuellement python) de manière 32 bits (avec le drapeau du compilateur -m32) si vous en avez besoin maintenant.

Vous pouvez utiliser PyQt à partir du projet homebrew: construction simple, dépendances gérées.

Bien sur mon MBP Unibody, tous 64 bits.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top