之所以這麼喜歡chrome,就是因爲它開放。與firefox不同,ff使用了mozilla的一些技術:xul、xpcom,而且編譯過程非常複雜,不適合研究學習。chrome使用了最普通的lib:WTL、zlib、libpng、sqlite、webkit,連v8也不是專門爲chrome開發的,它甚至可以獨立在命令行中解釋js代碼。編譯過程中使用了最最最平常不過的工具python,svn,cygwin。。。比起mozilla平易近人多了。
1.爲下載源碼做準備
這裏下載depot_tools,解壓縮。
http://src.chromium.org/svn/trunk/tools/depot_tools.zip
安裝一個python 2.4,我直接從這裏用svn簽出了一個。官方用的就是2.4,我沒嘗試過其他版本。
http://src.chromium.org/svn/trunk/tools/third_party/python/
因爲gclient要用svn,而我只有TortoiseSVN,所以我在這裏簽出一個svn。
http://src.chromium.org/svn/trunk/depot_tools/win/bootstrap/svn
或者這裏下載
http://subversion.tigris.org
將depot_tools,python,svn的三個路徑添加到PATH環境變量中。
之後,我把其中python和svn下面所有的.svn文件夾都刪除了,免得svn操作的時候混亂,產生不必要的麻煩。不知道如果不刪除會不會失敗。
2.下載源碼 - 從SVN簽出
gclient config http://src.chromium.org/svn/trunk/src
(可選)在.gclient文件中添加這些
"custom_deps" : {
"src/webkit/data/layout_tests/LayoutTests": None,
},
目的是爲了不下載LayoutTests的文件。因爲這個很浪費時間,而且好像目前對方的SVN還有問題,導致後面的gyp程序不能執行。
gclient sync (--force)
2.下載源碼 - 下載tgz的壓縮包
http://build.chromium.org/buildbot/archives/chromium_tarball.html
解壓縮後如果想更新到最新版本就執行這個
gclient sync (--force)
3.編譯
編譯chrome_exe工程就可以了。等啊等啊。。。
注意:
源碼的目錄名中不能有空格。
官方說tgz壓縮包不能用cygwin的工具解壓,文件訪問權限會出問題,推薦7z。當然也不能用winrar,它處理0大小的文件會出錯。
如果打開src\chrome\chrome.sln後發現,很多工程不存在,說明gyp過程失敗。自己調用src\tools\gyp\gyp.bat src\build\all.gyp,這樣打開sln就發現都齊了。
如果VS2008出現“Error C2471: cannot update program database”錯誤,去這裏下一個補丁打上
http://support.microsoft.com/kb/946040
如果找不到t2embap.h,或者安裝一個Windows SDK 6.1,或者去其他安裝了的機器上找到t2embap.h .lib .dll分別拷到你的SDK的include,lib,windows的system32就可以了。
下載最新的Google Chrome源碼並編譯
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Google Chrome有用的命令行參數
iteye_16355
2018-08-27 05:18:13
如何獲取Chromium的源代碼
像北风一样坚韧
2018-08-26 10:06:32
Chromium啓動堆棧調用函數的順序
tsddragon
2018-08-26 09:41:38
[Chromium學習筆記]瞭解Chromium的基礎知識
homking
2018-08-25 16:45:07
【Chromium】源碼結構和模塊關係
余亖爷
2018-08-25 15:23:56
【Chromium】官方學習計劃
余亖爷
2018-08-25 15:23:54
【Chromium】多進程架構(Multi-process Architecture)
余亖爷
2018-08-25 15:23:54
CHROME源碼剖析 上《轉》
wz5891
2018-08-25 15:22:06
CHROME源碼剖析 下《轉》
wz5891
2018-08-25 15:22:01
Chromium開發者生命週期
擎泽
2018-08-25 09:19:38
Chromium學習指引
擎泽
2018-08-25 09:19:32
Chromium線程模型、消息循環
擎泽
2018-08-25 09:19:32
Chromium主文檔加載流程
擎泽
2018-08-25 09:19:25
chromium中腳本執行的代碼路徑
leeeryan
2018-08-25 01:17:30