WebKit 在Windows 平台下編譯小結

2022-01-16 08:09:57 字數 2589 閱讀 4651

webkit 是世界公認的優秀的開源瀏覽器核心。具有渲染速度快,靈活可定製,多平台支援等優點。國內知名的maxthon 和 ucweb 都將webkit選作瀏覽器核心。谷歌公司和蘋果公司也分別在webkit 基礎上只做了chrome 瀏覽器和safari 瀏覽器。

雖然webkit 已經越來越多的被廣大程式設計師接受,但其編譯過程卻非常之痛苦。下面將我編譯webkit **的經驗與大家分享。

1)獲取webkit 源**webkit 源**在本文寫作時,版本是r52221 但我最近兩天都沒有將該版本的webkit編譯成功。原因是,使用visual studio 2005 開啟專案幾分鐘後,visual studio 2005 會停止響應。我測試過r50006版,也就是5字頭的第一版,就沒有這個問題。版本號越大說明源**越新,反之就越古老。

2)webkit 編譯環境的搭建

webkit **有一篇文章說明了一下webkit 在windows 平台下的環境搭建: 但這篇文章寫得也太過簡單了。這也是webkit 最最蹂躪人的地方。我在歷經十數次失敗之後,終於找到了通往目標的捷徑。

硬體方面

記憶體最好找一台記憶體大於2g的計算機。 因為webkit 專案太過龐大了,會生成數以百計的.obj 檔案。在執行鏈結操作時,記憶體會需要大概1.6g記憶體。如果你機器安裝的又是vista 之類的吃記憶體作業系統,那就等著看link.exe 告訴你"out of memory"吧。 我安裝了vista的機器的記憶體只有區區2g,鏈結了數次都沒有成功,最後逼得我在安全模式下(連網絡卡驅動都沒敢載入)編譯,終於在記憶體峰值到達1.99g 時涉險過關,真是太刺激了,太刺激了。

硬碟當然是越大越好,因為webkit 源**展開後需要占用160m-190m磁碟空間,編譯過程產生的中間檔案需要大約4g的儲存空間。外加上cygwin visual studio 等佔據的磁碟空間,這些還是挺大的。 最最重要的是系統盤最好預留出4g左右的空間。

其實使用多核的cpu對編譯webkit 也是有好處的,編譯指令碼可以同時並行的呼叫cl.exe 編譯webkit,大大縮短了編譯時間。

軟體方面

首先你需要安裝visual studio 2005 sp1 如果是vista 或者window 7 需要安裝 sp1 update for vista。 visual c++ 2005 express 也是可以編譯webkit的,但是需要單獨安裝 platform sdk。 實踐證明webkit 在platform 5.0 6.0 上都可以編譯通過。

這裡也會引申出乙個問題,如果你的機器上已經安裝了visual studio 2008 怎麼辦? 別擔心,visual studio 2005 和visual studio 2008 是可以共存的,並且visual studio 2005 可以在viusal studio 2008 之後安裝。但是,需要注意的是,當visual studio 2005 在visual studio 2008 之後安裝後,webkit 的perl指令碼只會到 「系統盤\program files\microsoft visual studio\」 下面去找vc 的bin資料夾(也就是cl.exe 所在資料夾)。如果你安裝的vs 2005 不在系統盤,需要將vc的bin資料夾拷貝到系統盤的那個目錄中去。

下一步,仍需要安裝的是quicktime sdk。 據有人說可以不安裝這個quicktime sdk,但我發現如果不安裝的話webkit 解決方案中的qtmovie 專案一定是無法編譯成功的。 quicktime 一定要安裝在 系統盤:\program files\quciktime sdk\ 下面,千萬別改動安裝路徑。

編譯步驟

1)  設定環境變數。將webkitlibrariesdir設定為 webkit 源**目錄\webkitlibraries\win 路徑; 將webkitoutputdir 設為你打算要存放obj和dll 的輸出資料夾,當然這個資料夾所在的分割槽至少要有4g的剩餘空間。

2)  執行更新指令碼。 請在桌面上執行cygwin 的命令列視窗,然後通過cd 命令(和dos的cd命令一樣) 跳轉至webkit 源**目錄\webkittools\scripts 資料夾下。比如,我的webkit 源**放在f盤,就是 cd f:/webkit/webkittools/scripts/  執行該目錄下的 update-webkit 和 update-webkit-support-libs 兩個指令碼。 很多部落格上都沒有提到這個步驟,實際上這個步驟是能否成功編譯的關鍵。

3)  成功執行完上面兩步後,就可以使用visual studio 2005 開啟位於 webkit 源**目錄\webkit\win\webkit.vcproj\ 目錄下的 webkit.sln 解決方案了。這個sln預設帶有六個編譯配置 debug、debug_all、debug_cairo、release、debug_internal、release_cairo。用release 編譯出來的就是用蘋果自己的渲染引擎的版本,和safari 的一致。 用release_cairo 編譯出來的是支援cairo渲染引擎的版本,這個版本可以脫離蘋果的環境單獨跑,但同時也無法放到蘋果的safari 環境中執行。要想監測編譯是否成功,可使用winlauncher.exe 這個應用程式載入webkit 進行測試。

先寫到這裡,以後想起什麼來再補充吧。

WebKit 在 Windows 平台下編譯小結

webkit 是世界公認的優秀的開源瀏覽器核心。具有渲染速度快,靈活可定製,多平台支援等優點。國內知名的maxthon 和 ucweb 都將webkit選作瀏覽器核心。谷歌公司和蘋果公司也分別在webkit 基礎上只做了chrome 瀏覽器和safari 瀏覽器。雖然webkit 已經越來越多的被廣...

WebKit 在 Windows 平台下編譯小結

雖然webkit 已經越來越多的被廣大程式設計師接受,但其編譯過程卻非常之痛苦。下面將我編譯webkit 的經驗與大家分享。獲取webkit 源 webkit 源 在本文寫作時,版本是r52221webkit 編譯環境的搭建 webkit 有一篇文章說明了一下webkit 在windows 平台下的...

webkit在windows上編譯成功

背景 android上用gdk除錯webkit太痛苦,另外瀏覽器的規格問題需要第三方的瀏覽器對比,所以萌生了編譯windows版本的safari的想法.準備安裝 vs 2005到d盤 安裝 activeperl到c perl 安裝 dx sdk 2006版本到c盤 安裝 qt sdk 到c盤 編譯時...