Qt4.8.4(msvc2010)编译QtAV

时间:2022-12-07 19:56:11

    在教程开始之前,最好先下载我给你的资源,里面有编译QtAV所有的东西(压缩包里面由ffmpeg库、portaudio库、QtAV源码库和我已经编译好的QtAV库),因为不同的QtAV版本编译过程出现的问题不同,本文主要针对我提供的QtAV版本。

链接:http://pan.baidu.com/s/1fNpfC 密码:5qaz



步骤一:把压缩包和里面的解压好,我解压到D:\QtAv中,如下图所示:


Qt4.8.4(msvc2010)编译QtAV



步骤二:打开Qt 4.8.4 Command Prompt,并进入解压目录中的QtAV-master文件夹,如下图所示:



Qt4.8.4(msvc2010)编译QtAV



步骤三:输入下面的代码然后按回车(注意自己修改相对应的路径)如下图所示:

set INCLUDE=%INCLUDE%;D:/QtAv/ffmpeg/include;D:/QtAv/portaudio/include
set LIB=%LIB%;D:/QtAv/ffmpeg/lib;D:/QtAv/portaudio/lib



Qt4.8.4(msvc2010)编译QtAV


步骤四:输入qmake -r -tp vc QtAV.pro 按回车,一会儿之后会看见QtAV-master文件夹会出现QtAV.sln工程文件,如下图所示:



Qt4.8.4(msvc2010)编译QtAV




步骤五:用vs2010打开QtAV.sln,配置环境如下图所示:



Qt4.8.4(msvc2010)编译QtAV




Qt4.8.4(msvc2010)编译QtAV



步骤六:右击QtAV工程选择生成,不要直接点击生成解决方案(之后会出现下面的问题)



Qt4.8.4(msvc2010)编译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。



Qt4.8.4(msvc2010)编译QtAV



步骤八:继续右键QtAV工程,选择生成。(会出现下面的错误)



Qt4.8.4(msvc2010)编译QtAV



   错误分析:把错误一贴百度谷歌一下都知道编译器不兼容,下面只说解决方法。



步骤九:按照下图配置:


/NODEFAULTLIB:"libcmtd.lib" 




Qt4.8.4(msvc2010)编译QtAV



步骤十:重复步骤七(最后编译出QtAVd1.lib和QtAVd1.dll)如图所示:



Qt4.8.4(msvc2010)编译QtAV



步骤十一:编译QtAVWidgets工程。



      其实QtAV源码里面就编译它跟QtAV工程就够了,其它可以不编译。方法很简单,设置环境,如下图所示:

Qt4.8.4(msvc2010)编译QtAV



    然后右击工程选择生成,最后就能够编译出QtAVWidgetsd.lib和dll了,如下图所示:



Qt4.8.4(msvc2010)编译QtAV

————————————————————————————————————————————————————————————————————————



最后运行一个里面的demo试试看~~~



Qt4.8.4(msvc2010)编译QtAV