程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> WebKit 在Windows 平台下編譯小結

WebKit 在Windows 平台下編譯小結

編輯:.NET實例教程

WebKit 是世界公認的優秀的開源浏覽器內核。具有渲染速度快,靈活可定制,多平台支持等優點。國內知名的Maxthon 和 UCWeb 都將WebKit選作浏覽器內核。谷歌公司和蘋果公司也分別在WebKit 基礎上只做了Chrome 浏覽器和Safari 浏覽器。

     雖然WebKit 已經越來越多的被廣大程序員接受,但其編譯過程卻非常之痛苦。下面將我編譯WebKit 代碼的經驗與大家分享。



1) 獲取WebKit 源代碼

      WebKit 源代碼是使用Subversion 工具做管理的。因此,只要具備Subversion 客戶端就可以從http://svn.webkit.org/repository/webkit/trunk 獲取源代碼。但是,這並不是最好的方式。在實際編譯過程中通過svn拿下來的代碼有可能為你帶來許多的煩惱。因此,我推薦從WebKit的Nightly build 直接下載WebKit 源代碼壓縮包。具體地址是:http://nightly.webkit.org/builds/trunk/src/1 像WebKit 這麼大的項目仍然遵循Daily Build 的原則,真是挺了不起的。


      WebKit 源代碼在本文寫作時,版本是r52221 但我最近兩天都沒有將該版本的WebKit編譯成功。原因是,使用Visual Studio 2005 打開項目幾分鐘後,Visual Studio 2005 會停止響應。我測試過r50006版,也就是5字頭的第一版,就沒有這個問題。版本號越大說明源代碼越新,反之就越古老。




2) WebKit 編譯環境的搭建


     WebKit 網站有一篇文章說明了一下WebKit 在Windows 平台下的環境搭建:http://webkit.org/building/tools.Html 但這篇文章寫得也太過簡單了。這也是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文件夾拷貝到系統盤的那個目錄中去。


     在安裝完Visual Studio 2005 之後,需要安裝另一個大塊頭Cygwin。Cygwin實際上是在Windows 上模擬了一個Unix 環境。 安裝Cygwin最好不要直接使用Cygwin網站上給出的setup.exe 文件。而是使用WebKit.org網站上給出的cygwin-downloader 工具。 cygwin-downloader 會下載編譯WebKit 所需的101 個工具(現在可能又多了幾個),諸如perl、zlib、bash 等等。待下載完成後,再運行Cygwin的安裝工具 Setup.exe 選擇從本地目錄安裝。請注意!Cygwin 要安裝到系統盤分區下,如C盤是系統盤,那麼Cygwin就必須安裝在C:\cygwin 下。安裝完成後,大約會占據幾百兆的空間。


    下一步,仍需要安裝的是QuickTime SDK。 據有人說可以不安裝這個QuickTime SDK,但我發現如果不安裝的話WebKit 解決方案中的QTMovIE 項目一定是無法編譯成功的。 QuickTime 一定要安裝在 系統盤:\Program Files\QucikTime SDK\ 下面,千萬別改動安裝路徑。




    最後,在解壓縮WebKit 源代碼文件之後,還需要到webKit.org 站點下載 WebKitSupportLibrary.zip
文件,這個文件是一些第三方庫在Windows 平台上預先編譯好的版本。供WebKit 鏈接時使用。下載後,zip文件無需解壓縮,直接放在WebKit的根目錄下即可。







編譯步驟 


    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 進行測試。




先寫到這裡,以後想起什麼來再補充吧。 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved