天天看點

輕松編譯google chrome浏覽器最新穩定版源代碼

輕松編譯google chrome浏覽器最新穩定版源代碼

ciml 2010-04-26 22:55:00 13988 收藏

分類專欄: Web Core 文章标簽: google chrome 浏覽器 windows python tools

版權

Web Core

專欄收錄該内容

4 篇文章 0 訂閱

訂閱專欄

寫在開頭

正如一位網友說的,在這個充滿大量工業垃圾代碼的環境,google 開源 chromium的出現無疑給這樣的環境添加了幾分藝術氣息。我對此深有同感,确實,在這個浮躁的大環境下,我們産出的大部分程式代碼,如果要和google這樣的頂尖技術公司産出的代碼相比,說我們大部分時間都在編寫垃圾代碼是不為過的。

但我們不應該為此就感到悲觀,畢竟象google這樣的公司集聚的是全世界最頂尖的技術天才。我等凡人怎能和他們相比,就我個人而言隻能抱着虔誠的心仰視他們的‘藝術作品’。作為技術人員,雖然不是每個人都可以成為天才,但并不妨礙我們站在巨人的肩上讓自己看得更遠一些。而現在的問題僅僅是有沒有某種内因或者外因促使你這樣去做!

如果你已經厭倦了每天充斥在你眼前大量的‘垃圾’代碼,不妨把浮躁的心平靜下來欣賞一下‘藝術品’。google chrome浏覽器源代碼是一個很好的開始,雖然其代碼工程非常之龐大(可能在你我看來),但這并沒有影響它的優雅性。它是一座‘金礦’,我們的任務是做好發掘工作。

編譯步驟

做好發掘工作的第一步就是擷取代碼并能成功編譯調試,我這裡隻談在windows環境下的編譯,我的作業系統是Windows Server 2008 企業版,其他windows 環境應該沒有什麼大的差別。其實我寫此文的目的可能更多的是加深印象,做個備忘,因為官方描述的編譯過程已經比較清楚了,如果你對官方的文檔描述更感興趣,請參考這裡。

注意要下載下傳代碼并完全編譯請準備至少10G空閑硬碟空間,你的機器配置越高越好。機器配置的好壞直接決定你等待編譯的時間長短。

我這裡僅僅是把步驟簡化整理如下:(注意準備至少10G的)

1.安裝Visual Studio 2008、安裝VS2008 Service Pack 1、安裝vs2008 sp1更新檔的更新檔KB967631; KB960075; KB958842; KB957912 和KB971092.注意KB971092更新檔比較大,共300多M。

2.安裝Windows 7 SDK,最好下載下傳ISO鏡像版,要小很多。注意Windows 6.1 SDK 在39982的修訂版本之後将不再支援。項目版本和日值情況可以到這裡檢視。安裝完成後,在開始菜單中選擇Windows SDK Configuration Tool和vs2008整合內建。

3.擷取安裝depot_tools工具,這是google自己用python封裝的svn代碼擷取用戶端工具,下載下傳depot_tools.zip并解壓到比如d:/depot_tools目錄。将depot_tools目錄路徑加到PATH環境變量。然後建立環境變量GYP_MSVS_VERSION=2008,這個環境變量的目的就是最終生産vs2008的工程類型。

4.下載下傳代碼,在比如D:建立一個chromium的目錄,然後指令行cd到該目錄,明确你需要下載下傳的版本,比如在我寫此文的時候官方最新釋出的穩定版為4.1.249.1059,我要下載下傳此版本的源代碼,先在d:/chromium目錄執行

gclient config http://src.chromium.org/svn/releases/4.1.249.1059

該指令并沒有真正下載下傳代碼,而隻是做一個用戶端配置工作,注意由于第一次運作gclient,依賴的python和svn工具可能還沒有安裝,此時gclient會自動下載下傳并安裝,是以你不必單獨事先安裝svn用戶端和python。你可以在視窗上看到正在安裝python和svn的進度提示,你隻需要等待,如果中途出錯,隻需要再次執行上述指令即可。注意gclient config指令隻需要執行一次,除非你需要同步其他版本的代碼而改變了配置路徑。該指令完成之後,再執行

gclient sync --force

就開始同步下載下傳代碼了,現在的任務就是等待,根據你的網絡情況,可能需要下載下傳半天到一天以上不等,如果中途出錯,隻需要重新執行gclient sync –-force,會自動接着上次的下載下傳。注意一定要加--force參數選項,否則可能下載下傳不齊全。

5.編譯代碼,如果一切順利,gclient sync –force執行完後,所有代碼完全成功下載下傳,并且自動生成了vs2008的解決方案工程檔案,現在直接打開d:/chromium/src/chrome/chrome.sln解決方案檔案,把chrome設定為啟動工程,在chrome工程上點選右鍵選擇build開始編譯即可。根據你機器的配置情況,需要等待20分鐘到2個小時以上不等,我在新購T410(I7 CUP、4G記憶體、7200轉500G硬碟)筆記本上,編譯了40分鐘。

6.運作chrome,編譯完成後,總共有将近200個依賴工程,最終會在chrome/debug目錄下生成chrome.exe和相關檔案。在vs2008中直接F5運作,然後在浏覽器位址欄輸入‘about:’ 回車核實版本号。如果顯示:

    Chromium

    4.1.249.1059 (開發人員内部版本 44723)

    WebKit

    532.5

    V8

    1.3.18.22

    User Agent

    Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1059 Safari/532.5

恭喜你,版本完全正确!注意我是以寫此文的時候的最新版為例,你隻需要和當時最新釋出的安裝版chrome對比即可。

總結

整個過程是很順利的,google把相關的工作做得非常完美了,不需要涉及到大量複雜的配置工作。chrome的開源算是google對開源界一個很大的貢獻吧。gclient是google自己封裝的工具,其本質是調用svn,額外的工作主要在于google代碼倉庫用DEPS檔案來描述項目版本之間的依賴關系,gclient會解析DEPS檔案并下載下傳對應版本的依賴庫,這是一個循環過程。有興趣可以參考depot_tools目錄下相關python腳本的實作過程。如果你想下載下傳最新開發版,注意不要直接配置為http://src.chromium.org/svn/trunk/src,這個下載下傳下來很可能無法成功編譯,因為主幹上的代碼随時在送出修改,沒有release,是以一定要下載下傳有release的,比如5.0.387.0。整個工程非常龐大,由此可以看出做一個真正優秀的浏覽器是多麼不容易。代碼中包括了webkit html解析、css解析、v8 js引擎實作、skia圖形處理、安全技術、網絡、資料庫、NPAPI插件架構、擴充架構、多程序、多線程等等技術主題,如果你對某方面感興趣,不妨對這些藝術性的代碼進行研究學習。當然對這樣龐大的開源項目進行分析學習是要講方法和毅力的,後續我也會對此作相關的分析和讨論。

————————————————

版權聲明:本文為CSDN部落客「ciml」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/ciml/article/details/5531876

繼續閱讀