使用vc9 编译Qt5.4

本文详细介绍了如何在vc9环境下自编译Qt5.4.0,包括必备组件安装、配置及解决vc9与webkit编译不兼容等问题,提供了一个从下载到编译再到自定义配置的完整流程。

官方的Qt
只有vc10以上的版本
若是想vc9 只能自己编译

so 开始干
搜索资料
1)vc9不能支持webkit的编译 直接删除掉
2)有部分地方 vc9默认支持LONG转ULONG 需要自己改代码
3)需要OPENSSL
4)需要python3.4.3
5)需要activePerl

开工
1。下载安装activeperl
2。下载安装python3.4.3
3。编译openssl 0.9.8k
perl Configure VC-WIN32 –prefix=C:\Build-OpenSSL-VC-32
ms\do_ms
nmake -f ms\nt.mak
nmake -f ms\nt.mak install
4。开始config Qt5 一个bat搞定

cd /d "C:\Program Files\7-Zip"

call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

if exist E:\qt-everywhere-opensource-src-5.4.0 (
 echo "QT FIles exists"
) else ( 
REM 7z x D:\Qt\qt-everywhere-opensource-src-5.4.0.zip -oE:\ 
echo "COPY Qt 5.4.0 Source"
xcopy %~dp0\qt5.4-source E:\qt-everywhere-opensource-src-5.4.0 /s /e /I
)

rd /s /q E:\qt-everywhere-opensource-src-5.4.0\qtwebkit
rd /s /q E:\qt-everywhere-opensource-src-5.4.0\qtwebkit-examples

copy /y %~dp0\dscamerasession.cpp  E:\qt-everywhere-opensource-src-5.4.0\qtmultimedia\src\plugins\directshow\camera

cd /d E:\qt-everywhere-opensource-src-5.4.0
set PATH=C:\Python34;C:\Program Files\7-Zip;%CD%\qtbase\bin;%PATH%
set QTDIR=C:\Qt\5.4.0

configure.bat -developer-build -opensource -nomake examples -nomake tests -mp -confirm-license -opengl desktop -no-icu -skip qtserialport -platform win32-msvc2008 -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32" -I "C:\Python34\include" -I C:\Build-OpenSSL-VC9-32\include -L C:\Build-OpenSSL-VC9-32\lib -L "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" -L C:\Python34\libs -l Gdi32 -l User32  -prefix C:\Qt\5.4.0 -mp

nmake

nmake install

pause

附上文中改掉的cpp文件 找到对应位置自行修改

  STDMETHODIMP_(ULONG) AddRef()
    {
        #if _MSC_VER==1500
            volatile LONG *p_ref=reinterpret_cast<volatile LONG *>(&m_ref);
            return InterlockedIncrement(p_ref);
        #else
            return InterlockedIncrement(&m_ref);
        #endif
    }


    STDMETHODIMP_(ULONG) Release()
    {
        #if _MSC_VER==1500
            volatile LONG *p_ref=reinterpret_cast<volatile LONG *>(&m_ref);
            ULONG ref = InterlockedDecrement(p_ref);
        #else
            ULONG ref = InterlockedDecrement(&m_ref);
        #endif
        if (ref == 0)
            delete this;
        return ref;
    }

完工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值