【问题标题】:Undefined reference with Phonon::VideoPlayerPhonon::VideoPlayer 的未定义引用
【发布时间】:2012-11-12 14:09:52
【问题描述】:

我正在使用 ubuntu 11.10 并使用 QT 创建 GUI,该 GUI 在构建时使用 cmakelist。 我遇到的问题是运行 make 时出现“未定义的对`Phonon::VideoPlayer::VideoPlayer(Phonon::Category, QWidget*)' 的引用”错误。

我正在使用 QT 4.7.4 并且这个“Qt PHONON library not found”。运行 make 时也会出现。

这是来自 cMakeCache

//库的路径。 QT_PHONONWIDGETS_PLUGIN_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/qt4/plugins/designer/libphononwidgets.so

//文件的路径。 QT_PHONON_INCLUDE_DIR:PATH=/usr/include/qt4/phonon

//Qt PHONON 库 QT_PHONON_LIBRARY:STRING=

字符串始终为空。

在我的头文件中这是相关代码

包括“声子/视频播放器”

Phonon::VideoPlayer* 播放器;

在cpp中

player = new Phonon::VideoPlayer(Phonon::VideoCategory,this);

感谢任何帮助。

谢谢

雅各布

【问题讨论】:

  • 你是从源代码编译的吗?在这种情况下,您是否使用了选项--phonon

标签: qt ubuntu phonon


【解决方案1】:

我最终不得不将四个 libphonon.so 文件从 QtSDK/QtCreator/lib/qtcreator 复制到 usr/lib/i386-linux-gnu 以使其工作。

感谢您的帮助:)

【讨论】:

    【解决方案2】:

    试试这个:

    1. 从 ubuntu 软件中心安装 phonon 和 libphonon-dev。
    2. 然后将其添加到您的项目文件 (.pro) -> QT += phonon
    3. 使用这些头文件:

      #include <phonon/AudioOutput>
      #include <phonon/MediaObject>
      #include <phonon/MediaSource>
      #include <phonon/VideoWidget>
      #include <phonon/VideoPlayer>
      
      
      using namespace Phonon;
      

    这是 Qt 文档中的一个简单示例:

     VideoPlayer *player = new VideoPlayer(Phonon::VideoCategory, parentWidget);
     connect(player, SIGNAL(finished()), player, SLOT(deleteLater()));
     player->play(url);
    

    【讨论】:

    • 您好,感谢您的回答。对 UmNyobe 来说,我只是在使用 make 就可以了。对 Milen 来说,我没有使用 .pro 文件,而只是使用 QT 库。如果我在 VideoPlayer 之前省略了 Phonon:: ,它会抱怨它不是一种类型。我尝试在具有 .pro 文件的模拟项目中使用 phonon,并且在添加 QT += phonon 后它运行良好,因此由于某种原因,cmake 似乎找不到 QT phonon 库。我添加了 (QT_USE_PHONON TRUE) 但这并没有什么不同。再次感谢您帮助我。任何其他建议
    【解决方案3】:

    如果您使用的是 linux 安装 phonon 和 libphonon-dev: $sudo apt-get install phonon libphonon-dev

    在你可以包含在你的 project.pro 文件中之后:

    LIBS += -lphonon

    如果不起作用,如果安装了 lib,您可以证书: $locate libphonon.so

    输出可能是:“/usr/lib/i386-linux-gnu/libphonon.so”

    您可以在 project.pro 文件中包含: INCLUDEPATH += /usr/lib/i386-linux-gnu

    LIBS += -lphonon

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 2012-06-29
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2011-10-26
      相关资源
      最近更新 更多