首先要准備一些依賴:
下載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的編譯太麻煩了. 配置麻煩而且時間又長. 艹啊, 我從中午編譯到晚上.
