Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)

Qt官网上下载的源代码在编译时并没有将phonon继承进去,只提供了源代码,而在Win7+VS2005中编译phonon时遇到不少的问题,因为phonon只是一个前端程序,要使用其实现多媒体的播放还需要配合Qt基本库、phonon_backend(后端插件)和多媒体播放后台等等。

phonon只提供了一套API接口给客户端程序调用,同时为后端插件提供一个规范,向后端插件传递客户端程序发出的指令,并且从后端插件返回给客户端程序当前媒体的状态和信息,起到桥梁的作用。而后端插件才是实际进行读入媒体、解码并且播放的部分,所以要在Qt环境下使用phonon需要:

  1. 编译Phonon库:通常情况下Qt默认没有编译Phonon以及Phonon_backend,需要在configure时加入-phonon和-phonon-backend参数,然后单独进入phohoh文件夹进行编译即可;
  2. 编译Phonon后端插件:Qt为3大平台提供了一个可用的后端插件,放在src/plugins/phonon目录下。进入目录编译即可,Qt会自动选择当前系统对应的后端插件。对于Windows平台,Qt只提供了DirectShow这个后端插件,并且调用的是DX的SDK,所以只能由VC编译,如果是MinGW用户,可以选择-phonon-vlc-mplayer作为后端插件;而DirectShow同样也只是一个框架,解码还得靠系统里安装的解码器和滤镜,下面要详细说明的就是编译这个后端插件的过程;
  3. 在后端插件编译完成后,可以运行Demo中的mediaplayer测试;

安装Microsoft .Net Framework 4.0 Full

安装Win7 SDK前需要安装Microsoft .Net Framework 4.0 Full,到微软官网下载安装程序安装即可;

安装Win7 SDK

安装Win7 SDK之前确保所有VC运行库(vc++ x86/64 runtime/redistributable)版本不能大于10.0.30319,如存在大于此版本的运行库则卸载,否则会导致编译失败;

卸载完高版本的运行库后开始安装SDK,默认选项:

重新配置Qt编译选项

安装完毕后运行Visual Studio 2005 Command prompt,重新configure Qt,先nmake confclean一次,清除以前配置过的文件;

清理完毕后重新配置Qt编译命令:configure -debug-and-release -platform win32-msvc2005 -plugin-sql-sqlite -plugin-sql-odbc -phonon -phonon-backend -vcproj

单独编译Phonon以及Phonon backend

重新配置完毕后直接进入phonon目录编译phonon库%QTDIR%\src\phonon,编译完毕后再进入%QTDIR%\src\plugins\phonon 编译phonon backend,此时会报错找不到dshow.h文件,原因是没有将平台SDK include文件的路径添加到环境变量中去,运行脚本:C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd

然后再nmake一次即可编译出phonon_ds9d4.dll和phonon_ds94.dll,

测试

此时运行Qt自带的例子

打开媒体播放没问题说明编译成功。

总结

  1. 此前根据诺基亚开发文档说明,为phonon的编译准备安装了DirectX SDK,后来重新编译一次以后发现不知从何时开始DirectShow已经被整合到Platform SDK中去,此次编译安装的Platform SDK版本为7.1,已经包含DirectShow,所以无需再安装DirectX SDK。
  2. 关于安装Microsoft .Net Framework 4.0 Full,第一次在台式机编译phonon时因为台式机已经安装Visual Studio 2010,自带Microsoft .Net Framework 4.0,但不知道是否完整版本,后来编译通过了;第二次编译Phonon在笔记本中,环境为Win7+Visual Studio 2005,没有手动安装Microsoft .Net Framework 4.0 Full,但已经手动打完所有Windows更新补丁,通过更新程序检查已无更新可用,编译Phonon一样通过。
  3. 关于运行C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd,此脚本须在Visual Studio 2005 Command prompt命令行窗口中执行,设置的环境变量仅对当前编译的工程有效,本人一开始以为在windows的cmd窗口中执行可以设置系统环境变量,后来编译phonon backend的时候还是报错,找不到dshow.h文件,才知道要在当前编译命令行窗口中执行此脚本。
  4. 从新配置Qt编译选项后无须再重新全编译一次Qt,选择性编译phonon和phonon backend就可以,节省时间。

转载请注明:http://www.cnblogs.com/bingcaihuang/archive/2013/03/21/2972721.html

时间: 2024-09-29 05:32:45

Win7+VS2005编译Qt4.7.3+phonon(需要安装新版本Windows SDK)的相关文章

VS2005编译QT4.8.2

为什么要编译? 因为安装安装版的QT4.8.2,vs2005编译报错. 1.下载QT4.8.2,qt-everywhere-opensource-src-4.8.2.zip,下载vs-AddIn1.1.11. 2.解压QT源码包到C盘, 这里路径为 c:\qt\4.8.2\. 3.配置系统环境变量: a.path中增加 c:\qt\4.8.2\bin b.创建系统环境变量QMAKESPEC值为win32-msvc2005 c.创建系统环境变量QTDIR值为 c:\qt\4.8.2\ 4.打开 5

使用VS2005安装和编译QT4.53源码

学习Qt,当然是QT4好.可是装了4.86以后,网上下载的书中的例子大多无法直接用VS执行(个人不喜欢用QT Creator),即打开pro转换的时候出错(我也懒的研究为什么出错了).看了一下发布时间,觉得4.53时间比较合适,是2009年末发布的.也许能运行书上的例子. 因为很懒,所以不想编译QT源代码,最好装上就能用.所以下载了qt-win-opensource-4.5.3-mingw.exe,安装报错,说找不到mingw.所以又下了MinGW-5.1.4.exe,这是个在线安装版本,我非常

Qt与VS2005/2008的完美配合(自己编译Qt4.5.1的详细步骤)

介绍 用过Linux的人想必都知道Qt(不是QuickTime,呵呵)这个名称,KDE就是用Qt写的,我也是接触Linux后才认识它的. Qt原先是奇趣科技TM(Trolltech)的产品,由Haavard Nord(Trolltech的CEO)和Eirik Chambe-Eng(Trolltech的董事长)于1991年开始它的历史,三年后他们创建了QuasarTechnologies公司,后改名为Trolltech,其发展与KDE的发展紧密关联,可以说早期时每个KDE版本的发布都是Qt的一个里

Windows平台上编译Qt-4.8.x Debug版注意事项

Windows平台上编译Qt-4.8.x Debug版注意事项 跳转至: 导航. 搜索 目录 1 为什么要编译qt-4.8.x的Windows Debug版? 2 1 MSVC版本的选择 3 2 WinRAR的问题 4 3 qmake子项目裁剪 5 4 调试QtWebKit 0 为什么要编译qt-4.8.x的Windows Debug版? 目的:为了方便调试qt的代码!VS比Linux gdb好使多了. 1 MSVC版本的选择 最好使用VS2008+,它的安装包自带了Windows SDK,不要

使用 VS2005 编译 directshow sample 时链接错误

Win7 系统下, 使用 VS2005 编译 Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\filters\async 工程时, 出现如下错误:...strmbasd.lib(xxxx.obj)...: fatal error lnk1103 debugging information corrupt recompile module uuid.lib解决方法: 安装 VS2005 补丁 VS80sp1-KB949009-X8

在win7 下编译MySQL源码

MySQL MySQL是一款优秀的开源数据库,在阿里.网易等各个互联网公司中有着广泛的应用.尽管各种NoSQL大行其道,但是关系型数据库依然必不可少. 作为一个新手,在Win7下用源码安装MySql数据库并不容易.我自己都折腾了好几天.今天把安装过程记录下来,其一是为了方便自己以后学习,其二则是分享过程,让学习者能够从我这篇文章中受益. 1. 编译环境及源码下载 编译环境:Visual Studio 2010 (Win7 32位) 编译工具: bison-2.4.1-setup.exe 下载地址

用mingw静态编译Qt4.8.2和Qt5.1.1(需要修改不少源码)

因为一些乱七八糟的原因,我需要用mingw静态编译Qt4.8.2和Qt5.1.1.经历了一天的折腾之后,自觉编译一下Qt还是件颇为麻烦的事情,故将过程略作总结,以备不时之需. 首先,在编译之前,我需要下载mingw.qt-everywhere-opensource-src-4.8.2和qt-everywhere-opensource-src-5.1.1. 然后,准备开始编译了,当然先得把压缩包解压到一个合适的地方.我这里的路径是"C:\Qt"下面. 解压完毕后,先试着编译Qt4.8.2

Windows下MinGW编译Qt4

还真不是吹,这个问题折磨我一天……前些天转载了一篇关于<Eclipse+Qt开发环境设置>和<Eclipse+MinGW+Qt开发环境设置>两片文章,里面讲述了QT的开源版本qt-win-opensource-4.x.x-mingw.exe 在Windows下的安装步骤,但我的是qt-win-commercial-src-4.x.x.zip,一顿百度.谷歌……结果还都是关于Qt开源版本的介绍,如何在MinGW开发环境编译成了今天的话题. 安装MinGW或者DEV-CPP,设置环境变

Windows环境下使用VS2005编译OpenSSL

如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP SP3下使用VS2005SP1下编译成功的,OpenSSL的版本是0.9.8l. http://www.cnblogs.com/moonset7/archive/2009/12/18/1627317.html by 月落上弦 一.编译OpenSSL  准备工作:下载OpenSSL源码 官方网站下载Op