簡體   English   中英

無法在Mac OS X(El Capitan)上構建PySide

[英]Trouble building PySide on Mac OS X (El Capitan)

我正在嘗試在運行El Capitan(10.11.5)的Mac上構建PySide。

這是我正在使用的命令:

python setup.py bdist_wheel --cmake=/Applications/CMake.app/Contents/bin/cmake

但是,每次運行此命令時,都會收到以下錯誤消息:

In file included from /Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:38:
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.h:56:76: error: virtual function
      'metaObject' has a different return type ('Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType>') than the function it overrides (which has return type 'const QMetaObject *')
    virtual Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType > metaObject() const;
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/usr/local/Trolltech/Qt-4.8.6/include/phonon/objectdescriptionmodel.h:202:68: note: overridden virtual function is here
            PHONON_TEMPLATE_CLASS_MEMBER_EXPORT const QMetaObject *metaObject() const;
                                                      ~~~~~~~~~~~~~^
/usr/local/Trolltech/Qt-4.8.6/include/phonon/objectdescriptionmodel.h:194:40: error: base class 'QAbstractListModel' has private copy constructor
    class PHONON_TEMPLATE_CLASS_EXPORT ObjectDescriptionModel : public QAbstractListModel
                                       ^
/usr/local/Trolltech/Qt-4.8.6/lib/QtCore.framework/Headers/qabstractitemmodel.h:380:20: note: declared private here
    Q_DISABLE_COPY(QAbstractListModel)
                   ^
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:636:16: note: implicit copy
      constructor for 'Phonon::ObjectDescriptionModel<Phonon::ObjectDescriptionType::AudioOutputDeviceType>' first required here
        return ::Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType >(((::QObject*)0));
               ^
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:641:16: error: no viable
      conversion from returned value of type 'const QMetaObject *' to function return type 'Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType>'
        return this->::Phonon::AudioOutputDeviceModel::metaObject();
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:651:16: error: no matching
      constructor for initialization of 'Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType>'
        return ::Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType >(((::QObject*)0));
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:656:150: error: no matching
      function for call to 'SbkType'
  ...2, "Invalid return value in function %s, expected %s, got %s.", "AudioOutputDeviceModel.metaObject", Shiboken::SbkType< Phonon::ObjectDescriptionModel >()->tp_name, pyResult->ob_type->tp_n...
                                                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_install/py2.7-qt4.8.6-64bit-release/include/shiboken/conversions.h:52:15: note: candidate template ignored: invalid explicitly-specified
      argument for template parameter 'T'
PyTypeObject* SbkType()
              ^
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:657:16: error: no matching
      constructor for initialization of 'Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType>'
        return ::Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType >(((::QObject*)0));
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:662:12: error: no viable
      conversion from returned value of type '::Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType> *' to function return type
      'Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType>'
    return cppResult;
           ^~~~~~~~~
/Users/spearsc/Documents/pyside_tmp/PySide-1.2.4/pyside_build/py2.7-qt4.8.6-64bit-release/pyside/PySide/phonon/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp:1460:157: error: 
      incompatible operand types ('Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType>' and 'const QMetaObject *')
  ...? reinterpret_cast<AudioOutputDeviceModelWrapper*>(cppSelf)->::AudioOutputDeviceModelWrapper::metaObject() : cppSelf->metaObject());
     ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~
3 warnings and 8 errors generated.
make[2]: *** [PySide/phonon/CMakeFiles/phonon.dir/PySide/phonon/phonon_audiooutputdevicemodel_wrapper.cpp.o] Error 1
make[1]: *** [PySide/phonon/CMakeFiles/phonon.dir/all] Error 2
make: *** [all] Error 2
error: Error compiling pyside

尤其令人發瘋的是,我已經編輯了phonon_audiooutputdevicemodelwrapper文件,但是編輯似乎沒有效果。 運行setup.py腳本似乎撤消了我的更改。

我不需要Phonon模塊。 但是,我看不到使用PySide構建跳過該模塊的方法。 我可以使用Qt跳過此步驟,但我希望不必再次進行重建。

加法16年8月10日

奇怪,我在沒有聲子的情況下重建了Qt:

$ ./configure –no-phonon –no-phonon-backend

我仍然有同樣的問題。

然后我刪除了phonon目錄(PySide-1.2.4 / pyside_build / py2.7-qt4.8.6-64bit-release / pyside / PySide / phonon),並得到了不同的錯誤消息。

這是我在沒有聲子的情況下構建PySide的方法:

將PySide源下載到臨時目錄,然后解壓縮存檔:

$ pwd
/Users/spearsc/Documents/pyside_tmp
$ tar –xvzf  dist\PySide-1.2.4.tar

現在您需要編輯PySide-1.2.4 / sources / pyside / CMakeLists.txt。 找到這行(我相信是第33行):

HAS_QT_MODULE(QT_PHONON_FOUND phonon)

只需注釋掉這一行:

# HAS_QT_MODULE(QT_PHONON_FOUND phonon)

然后運行setup.py腳本:

python setup.py bdist_wheel --cmake=/Applications/CMake.app/Contents/bin/cmake

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM