PyQt4 no Snow Leopard em 64 bits
-
07-07-2019 - |
Pergunta
Eu só compilou a mais recente prévia do Qt4.6 no Snow Leopard em 64 bits sem grandes problemas.
http: // qt .nokia.com / desenvolvedor / qt-4.6-tecnologia-visualização # download-a-qt-4-1
Agora, eu estou tentando fazer o mesmo para PyQt4.6 com o último snapshot do site da River Bank. No entanto, as saídas do compilador com o seguinte 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.
Este é um erro com PyQt4 tentando acessar um membro particular de uma classe Qt4? Alguém compilado PyQt4 no Snow Leopard com sucesso?
Solução
Eu só tenho PyQt 4.6.2 de trabalho com o de 64 bits Python 2.6.1. Eu postei as instruções aqui: http: / /mpastell.com/2009/11/24/pyqt-4-6-2-with-snow-leopard/
Outras dicas
Nos changelogs vejo Phil (mantenedor do PyQt) emitiu correções ontem nos instantâneos de desenvolvimento especificamente para Snow Leopard:
2009/09/14 12:12:49 phil mais correções para o Snow Leopard em 64 bits sistemas. adicionado QObject.pyqtConfigure ().
Você está usando construção de ontem do PyQt?
Esta discussão sobre a lista de discussão é também interessante particularmente.
Os problemas de compilação PyQt parece ser causada por leopardos da neve compila de 64 bits padrão e 64/32 mordeu versão mista de Python ele vem com.
Se as coisas continuarem a correr mal, eu iria apresentar os seus problemas a esta lista de discussão (para que eles possam ficar fixo - espero) e tentar (temporariamente) reconstruir Qt e PyQt (e possivelmente python) de uma forma de 32 bits (com a bandeira -m32 compilador) se você precisar dele trabalhando agora.
Você pode querer usar PyQt do projeto homebrew:. Construção simples, dependências gerenciadas
Executar bem no meu MBP Unibody, todos de 64 bits.