VS2008+QT4.8.7编译QTAV问题和解决方法

VS2008+QT4.8.7编译QTAV问题和解决方法


1.下载windows依赖文件QtAV-depends-windows-x86+x64.7z,为了方便,直接将对应的头文件、静态库和动态库放在QT安装目录对应的位置;


2.设置系统环境变量(若是已配置请忽略):
    系统环境变量添加:新建系统变量,QTDIR->C:\Qt\4.8.7,值根据本身的安装目录而定;
    编辑系统变量path,在末尾加上;%QTDIR%\bin


3.生成VS2008工程文件:
运行Visual Studio 2008 命令提示,进入QTAV源码根目录,运行:
qmake -r -tp vc QtAV.pro

4.用VS2008打开目录下上一部生成的QtAV.sln文件,按F7生成解决方案,遇到一下问题,依次解决便可:


4.1 M_PI_2未定义
在src/corelib/kernel/qmath.h中M_PI以后定义M_PI_2
#ifndef M_PI_2
#define M_PI_2    (1.57079632679489661923)  /* pi/2 */
#endifwindows

4.2 错误    1    fatal error LNK1181: 没法打开输入文件“..\.obj\QtAVd_win_x86\CopyFrame_SSE2.obj”    QtAV
搜索程序目录下CopyFrame_SSE2.obj和CopyFrame_SSE4.obj,放到..\.obj\QtAVd_win_x86\目录测试

4.3
AVPlayer.h
std::numeric_limits::max()
出现以下错误: 
warning     C4003:     “max”宏的实参不足       
error     C2589:     “(”     :     “::”右边的非法标记
须要把max用括号括起来避免和windows定义的宏混淆
(std::numeric_limits::max)()
由于Windef.h中定义了
#ifndef max
#define max(a,b)            (((a) > (b)) ? (a) : (b))
#endif
因此会产生编译错误spa

4.4
项目: Player, 配置: Debug Win32 ------
1>正在连接...
1>LINK : fatal error LNK1181: 没法打开输入文件“E:/Qt/workspace/QtAV/QtAV/lib_win_x86\common.lib”
common.lib改成commond.libcmd

完=======================
补充一点:步骤一我将依赖的文件直接放到QT安装目录,是由于按照官方的编译方法,在编译的时候设置环境变量,可是不行,无奈才这样作的。
如下方法我测试没用,有兴趣能够试下:
VC: INCLUDE and LIB
set INCLUDE=E:\Qt\workspace\QtAV\QtAV-depends-windows-x86+x64\include;%INCLUDE%
set LIB=E:\Qt\workspace\QtAV\QtAV-depends-windows-x86+x64\lib;%LIB%源码

windows cmd.exe environment without UNIX Shell command line
set CPATH=E:\Qt\workspace\QtAV\QtAV-depends-windows-x86+x64\include:$CPATH
set LIBRARY_PATH=E:\Qt\workspace\QtAV\QtAV-depends-windows-x86+x64\lib:$LIBRARY_PATHit

我在两台电脑上面编译遇到的以上问题,都得以解决,但愿能帮到你们。io

相关文章
相关标签/搜索