vs2010 编译Qt5.2 rc1
首先要准备一些依赖:
下载Qt 5.2.0 rc版的源码 qt-everywhere-opensource-src-5.2.0-rc1.7z 并解压出来, 我的路径为D:\qt5\qt-src-5.2.0-rc1, (我把qt-everywhere-opensource-src-5.2.0-rc1重命名为qt-src-5.2.0-rc1, 名字太长了 --!)
python: 2.6.x以上
ruby: 1.9.3以上 (ruby1.9.3-windows-installer)
perl: 5.14以上 (http://www.activestate.com/activeperl/downloads)
openssl: 需要编译用vs2010编译openssl, 编译步骤可以参考这篇: http://www.cnblogs.com/shootingstars/archive/2006/02/17/332276.html . 我使用的版本为openssl-1.0.1e
icu: Qt提供的开发包下载地址. http://download.qt-project.org/development_releases/prebuilt/icu/prebuilt/msvc2010/icu_51_1_msvc_2010_32_devel.7z
directx : angle库(用于映射gles2.0API到dx9)依赖它, 我安装的directx sdk june 2010版本, 详细解释参考这篇http://qt-project.org/wiki/Qt-5-on-Windows-ANGLE-and-OpenGL
开始编译:
1. 打开Visual Studio 2010 Command Prompt
先配置path路径, 最好是干净的path, 否则可能会遇到莫名其妙的变异错误(例如: path中包含git的话, 可能会优先使用git下的perl.exe)
所以这样, 执行echo %path% , 然后把与vs2010相关的路径和system32路径复制出来, 然后在手动加上perl, python等依赖的路径, 我的设置如下
set path=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VSTSDB\Deploy;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Windows\Microsoft.NET\Framework\v3.5;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCPackages;C:\Program Files (x86)\HTML Help Workshop;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin;D:\libraries\Ruby193\bin;D:\libraries\Perl\bin;C:\Windows\system32;D:\libraries\Python26;D:\qt5\qt-src-5.2.0-rc1\gnuwin32\bin;%CD%\qtbase\bin;D:\libraries\icu\icu51-1\lib;
其中
D:\libraries\Ruby193\bin;D:\libraries\Perl\bin;D:\libraries\Python26;D:\qt5\qt-src-5.2.0-rc1\gnuwin32\bin;%CD%\qtbase\bin;D:\libraries\icu\icu51-1\lib;
gnuwin32\bin; 包含一些gnu工具, 而webkit的编译依赖bison, flex, gperf.
icu\icu51-1\lib; Qt编译出来的uic.exe doc.exe等依赖icu*.dll
%CD%\qtbase\bin; qmake.exe, uic.exe等
2. Configure
d: cd D:\qt5\qt-src-5.2.0-rc1 configure -opensource -developer-build -mp -platform win32-msvc2010 -nomake examples -nomake tests -icu -I D:\libraries\icu\icu51-1\include -L D:\libraries\icu\icu51-1\lib -openssl -I D:\libraries\openssl-1.0.1e\inc32 -L D:\libraries\openssl-1.0.1e\out32dll
在configure时, -openssl -icu启用openssl和icu支持, 并设置其头文件路径和库文件路径
关于configure的具体参数(例如编译静态库什么的), 可以执行configure -help 查看
................. OpenSSL support.............yes ................ Third Party Libraries: ZLIB support............qt GIF support.............plugin JPEG support............plugin PNG support.............yes FreeType support........yes HarfBuzz-NG support.....no PCRE support............qt ICU support.............yes ANGLE...................yes ..............
configure的部分结果
3. nmake
如果没有问题的, 应该一路编译过去了
如果编译完成后缺少*webkit*.dll的话, 可以再执行nmake module-qtwebkit
PS: Qt的编译太麻烦了. 配置麻烦而且时间又长. 艹啊, 我从中午编译到晚上.