硬件加速和非加速在程序處理上的區別???
既然要研究webkit,那必然是先要把源碼下下來,編譯一下。
在 www.webkit.org 上有對編譯步驟的主要介紹,建議先看一遍。
由於我是第一次編譯開源的代碼,很多東西不是太懂,所以中間出現很多問題。建議第一次像我這樣編譯webkit的童靴。第一,必要下載最新版本的源碼,因爲新版本的源碼在編譯過程中會遇見很多新錯誤,這樣別人很難幫你解決。第二,編譯通不過主要還是因爲環境的問題,所以在安裝開發工具和支持庫的時候最好安放在默認路徑或者是官網推薦路徑下,這樣可以避免出現很多麻煩,雖然我是很不情願把那麼大的東西安裝在C盤,但就是因爲這樣所以導致重裝系統一次。在編譯失敗的時候不要灰心,重來一遍,堅持就是勝利。一般只要你的電腦不是很老,這個solution還是可以在2 個小時左右編譯出來的,但是我的電腦我不明白是因爲什麼,剛開始啓動編譯的時候跑的還挺快,到了後面就是龜速,所以浪費了超多的時間。莫非在內存佔用過多的時候,編譯進程會減速?我的電腦可識別的內存爲2.85G,佔用最多也只有80%左右,還是不明白到了後面cl進程爲什麼只有5%以下的CPU佔用率?
獲取源碼
1: 下載webkit的源碼,http://nightly.webkit.org/ 選擇 Source 直接下載就行了,大小隻有20幾M,很快就能下完。建議不要下載太高的版本。
話說這源碼也更新的太快了把,一天更新好幾次都有。
安裝開發工具
根據 http://www.webkit.org/building/tools.html 推薦使用VS205,當讓網上也有人使用VS2008。
1:安裝visual studio 2005 team 版
2:安裝Microsoft Visual Studio 2005 Team Suite Service Pack 1
3:安裝Visual Studio 2005 Service Pack 1 ATL Security Update.
4:裝上4個補丁,KB918559 KB935225 KB943969 KB947315
5:安裝cygwin,cygwin可以在windows平臺下模擬Uinux系統。 Webkit官網提供了一個cygwin-downloader.zip供下載,解壓以後,文件夾裏面有一個cygwin-downloader.exe,點擊運行它會自動下載N個軟件包;下載完成後,點擊Cygwin的安裝程序選擇從本地文件夾安裝,把剛纔下載的N個軟件都裝上即可。但是如果是在內網或者其他的原因cygwin-downloader.exe下載安裝包的時候失敗。那我們就需要手動安裝,進入cygwin官網下載setup.exe,運行,選擇安裝
["apache", "bc", "bison", "curl", "diffutils", "e2fsprogs", "emacs", "flex",
"gcc", "gperf", "keychain", "make", "nano", "openssh", "patch", "perl",
"perl-libwin32", "python", "rebase", "rsync", "ruby", "subversion", "unzip",
"vim", "zip"]
耐心等待過後,然後你的cygwin就算是搞定了,如果不安裝這些的話,後面編譯就一定會出錯。
6:安裝 QuickTime SDK,下載前需要在apple上註冊
7:安裝 DirectX SDK
8:下載WebKitSupportLibrary.zip,
https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html
不需要解壓,直接放在webkit源碼的根目錄下。
那webkit的源碼放哪?放在cygwin/home/<username>/下吧。
9:打開Cygwin,運行WebKit/Tools/Scripts/update-webkit,是個更新腳本,不運行這個編譯的時候是肯定要出錯的。但是如果是在內網的話,需要做一個curl的代理,否則會更新不成功。其實就是在你cygwin/home/<username>/下創建一個.curlrc文件,內容爲:proxy = http://proxy.tencent.com:8080 解釋一下,貌似不同的公司代理不同,自己看着辦把。其實更新文件在瀏覽器中是可以下載的,但在命令行中就是下載不了,事實上只是端口的問題。如果你正確設置了代理還是運行不正確的話,那就需要考慮對於版本過低的源碼不支持update
10:運行WebKit/Tools/Scripts/build-webkit,如果一開始就出錯的話,那多半是環境不對,好好看錯誤提示,也許就能找到解決辦法。如果是運行出現了一大坨內容後,再提示出錯的話,那就不需要管它了。
11:還需要記得設置兩個環境變量,
WEBKITOUTPUTDIR = %WEBKIT_DIR%\WebKitBuild
WEBKITLIBRARIESDIR = %WEBKIT_DIR%\WebKitLibraries\win
%WEBKIT_DIR%當然就是指您的Webkit文件夾的絕對路徑。
12:用VS2005打開Sources\WebKit\win\WebKit.vcproj\WebKit.sln,選擇正確的Configuration,也就是Debug和Release,爲啥要說這個呢,因爲Webkit在Windows下不止一個port,也就不止一個Debug和一個Release,這裏我們要選的就是單純的Debug和Release,其他的Build配置就忽略吧。
13:還有一個問題就是需要把相關項目中的 Treat Warnings As Errors 改成 No,否則會很糾結
14:然後我在編譯12xxxx的版本代碼的時候還遇見了Source\WebCore\platform\LocalizedStrings.cpp文件的編碼錯誤問題。這個只需要用記事本打開源碼中的那個出現了問題的文件,然後以utf-8的編碼方式保存覆蓋源文件,應該就ok了。
對於12xxxx的源碼我是反覆編譯不成功,最後老大把他9xxxx版本的源碼拷給我,事實上這個時候9xxxx版本的已經不支持update了,但我沒有update直接使用VS2005編譯,最後算是半成功了,因爲只有MiniBrowser.exe能運行
調試運行
1:下載並安裝safari,最好還是安裝在默認目錄下吧。
2:把safari目錄下的dll庫拷貝到WebKitBuild/bin,不需要全部拷貝,你可以使用depends這個工具查看都需要哪些dll庫,然後一一在C盤下搜索,然後拷貝過來。
3:然後你就可以啓動MiniBrowser/winLauncher ,然後在VS2005中將WebKit項目設置爲Startup Project。在菜單中選擇Debug –> Attach to Process。然後在彈出對話框的進程列表裏面選擇MiniBrowser/winLauncher,然後你就可以在代碼中增加斷點,開始慢慢研究了。
這裏有一遍文章其實寫的很詳細,大家也可以看看 http://niuwa.org/?p=4