首先要准备一些依赖:
下载Qt 5.2.0 rc版的源码 qt-everywhere-opensource-src-5.2.0-rc1.7z 并解压出来, 我的路径为D:qt5qt-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.0VSTSDBDeploy;C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE;C:Program Files (x86)Microsoft Visual Studio 10.0VCBIN;C:Program Files (x86)Microsoft Visual Studio 10.0Common7Tools;C:WindowsMicrosoft.NETFrameworkv4.0.30319;C:WindowsMicrosoft.NETFrameworkv3.5;C:Program Files (x86)Microsoft Visual Studio 10.0VCVCPackages;C:Program Files (x86)HTML Help Workshop;C:Program Files (x86)Microsoft Visual Studio 10.0Team ToolsPerformance Tools;C:Program Files (x86)Microsoft SDKsWindowsv7.0AinNETFX 4.0 Tools;C:Program Files (x86)Microsoft SDKsWindowsv7.0Ain;D:librariesRuby193in;D:librariesPerlin;C:Windowssystem32;D:librariesPython26;D:qt5qt-src-5.2.0-rc1gnuwin32in;%CD%qtbasein;D:librariesicuicu51-1lib;
其中
D:librariesRuby193in;D:librariesPerlin;D:librariesPython26;D:qt5qt-src-5.2.0-rc1gnuwin32in;%CD%qtbasein;D:librariesicuicu51-1lib;
gnuwin32in; 包含一些gnu工具, 而webkit的编译依赖bison, flex, gperf.
icuicu51-1lib; Qt编译出来的uic.exe doc.exe等依赖icu*.dll
%CD%qtbasein; qmake.exe, uic.exe等
2. Configure
d: cd D:qt5qt-src-5.2.0-rc1 configure -opensource -developer-build -mp -platform win32-msvc2010 -nomake examples -nomake tests -icu -I D:librariesicuicu51-1include -L D:librariesicuicu51-1lib -openssl -I D:librariesopenssl-1.0.1einc32 -L D:librariesopenssl-1.0.1eout32dll
在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的编译太麻烦了. 配置麻烦而且时间又长. 艹啊, 我从中午编译到晚上.