Вопрос

Я только что скомпилировал последний превью Qt4.6 на Snow Leopard в 64-битной версии без каких-либо серьезных проблем.

http: // qt .nokia.com / разработчик / кварта-4,6-технология предварительного просмотр # загрузка-The-кварта-4-1

Теперь я пытаюсь сделать то же самое для PyQt4.6 с последним снимком с сайта River Bank. Однако компилятор завершает работу со следующей проблемой:

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.

Это ошибка, когда PyQt4 пытается получить доступ к закрытому члену класса Qt4? Кто-нибудь успешно компилировал PyQt4 на Snow Leopard?

Это было полезно?

Решение

Я только что получил PyQt 4.6.2, работающий с 64-битным Python 2.6.1. Я разместил инструкции здесь: http: / /mpastell.com/2009/11/24/pyqt-4-6-2-with-snow-leopard/

Другие советы

В журналах изменений я вижу Фила (сопровождающего PyQt) выпустил исправления вчера в снимках разработки специально для Snow Leopard:

  

2009/09/14 12:12:49 Phil Далее   исправления для Snow Leopard на 64 бит   системы. добавленной   QObject.pyqtConfigure ().

Используете ли вы вчерашнюю сборку PyQt?

Эта тема в списке рассылки также особенно интересно.

Проблемы с компиляцией PyQt, по-видимому, вызваны 64-битными компиляциями Snow Leopards по умолчанию и 64/32-битной смешанной версией Python, с которой он поставляется.

Если что-то пойдет не так, я отправлю ваши проблемы в этот список рассылки (чтобы они могли быть исправлены - надеюсь) и попытаюсь (временно) пересобрать Qt и PyQt (и, возможно, python) 32-битным способом (с флаг компилятора -m32), если вам нужно, чтобы он работал сейчас.

Возможно, вы захотите использовать PyQt из проекта homebrew: простая сборка, управляемые зависимости.

Отлично работает на моем MBP Unibody, все 64-битные.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top