在教程开始之前,最好先下载我给你的资源,里面有编译QtAV所有的东西(压缩包里面由ffmpeg库、portaudio库、QtAV源码库和我已经编译好的QtAV库),因为不同的QtAV版本编译过程出现的问题不同,本文主要针对我提供的QtAV版本。
链接:http://pan.baidu.com/s/1fNpfC 密码:5qaz
步骤一:把压缩包和里面的解压好,我解压到D:\QtAv中,如下图所示:
步骤二:打开Qt 4.8.4 Command Prompt,并进入解压目录中的QtAV-master文件夹,如下图所示:
步骤三:输入下面的代码然后按回车(注意自己修改相对应的路径)如下图所示:
set INCLUDE=%INCLUDE%;D:/QtAv/ffmpeg/include;D:/QtAv/portaudio/include set LIB=%LIB%;D:/QtAv/ffmpeg/lib;D:/QtAv/portaudio/lib
步骤四:输入qmake -r -tp vc QtAV.pro 按回车,一会儿之后会看见QtAV-master文件夹会出现QtAV.sln工程文件,如下图所示:
步骤五:用vs2010打开QtAV.sln,配置环境如下图所示:
步骤六:右击QtAV工程选择生成,不要直接点击生成解决方案(之后会出现下面的问题)
错误分析:很明显连接器找不到CopyFrame_SSE2.obj文件,其实这个文件就生成在QtAV-master\src里面,所以连接器找不到。打开src目录除了看到CopyFrame_SSE2.obj外还看到CopyFrame_SSE4.obj文件。
步骤七:把上一步分析中的两个文件复制到QtAV-master\.obj\QtAVd_win_x86里面。
需要注意两点:
1、首先在VS2010里面右键QtAV工程,选择清理后再复制。
2、看清楚要复制的文件夹,因为我是以debug模式输出的,所以是QtAVd_win_x86,如果是release输出要选择QtAV_win_x86。
步骤八:继续右键QtAV工程,选择生成。(会出现下面的错误)
错误分析:把错误一贴百度谷歌一下都知道编译器不兼容,下面只说解决方法。
步骤九:按照下图配置:
/NODEFAULTLIB:"libcmtd.lib"
步骤十:重复步骤七(最后编译出QtAVd1.lib和QtAVd1.dll)如图所示:
步骤十一:编译QtAVWidgets工程。
其实QtAV源码里面就编译它跟QtAV工程就够了,其它可以不编译。方法很简单,设置环境,如下图所示:
然后右击工程选择生成,最后就能够编译出QtAVWidgetsd.lib和dll了,如下图所示:
————————————————————————————————————————————————————————————————————————
最后运行一个里面的demo试试看~~~