标题:使用vc(vs2008)编译Qt5.4
作者:cangyuegui
日期:2015-04-28 09:17
内容:
官方的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-VC9-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.cppE:\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文件 找到对应位置自行修改
文件路径为qtmultimedia\src\plugins\directshow\camera\dscamerasession.cpp
STDMETHODIMP_(ULONG) AddRef()
{
#if _MSC_VER==1500
&nb ..
#1 [stlcours 04-28 21:55]
支持~~~
#2 [hidxl 09-11 15:15]
为什么VS2008 编译不了webkit ,那个模块搞不定?
#3 [hidxl 09-16 08:27]
VS2008 能编译 QT5.3,我已经编译出来了.
#4 [lion1986 09-24 10:11]
按照你的方法编译5.5,部分模块编译成功,一部分出错(qttools 出错,其他依赖它的模块也编译不过去),错误如下,有谁知道什么原因?查了很久没查到什么原因导致的。
D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xutility(263) : error C2678: 二进制“
#5 [lion1986 09-24 13:46]
由于std::lower_bound导致的问题,已解决,方法如下:
在qttools\src\assistant\help\qhelpsearchindexwriter_clucene.cpp增加如下代码:
#if defined(Q_CC_MSVC) && _MSC_VER < 1600
//The STL implementation of MSVC 2008 requires the definitions
static bool operator