windows下编译chromium浏览器的15个流程整理
閱讀目錄
- 編譯chromium
- 15個(gè)編譯流程:
- 參考:
- 注意:
編譯chromium
系統(tǒng)為windows, 國(guó)內(nèi)在windows上編譯chromium的資料比較少, 我這篇文章只能作為參考, 記錄我遇到的一些問題,因?yàn)閏hromium團(tuán)隊(duì)也會(huì)修改了代碼,或者編譯流程;
如果你用linux或者mac,就別看這篇文章, 國(guó)外的編譯文檔都是linux和mac, 因?yàn)椴顒e還是比較多的;
回到頂部15個(gè)編譯流程:
1:chrome源碼;?https://chromium.googlesource.com/chromium/chromium/
2:系統(tǒng)要求:win7以后的版本, 處理器要求x86或x64;
3:window下, 起碼要8G的空余內(nèi)存, 硬盤最好是固態(tài)的, chromium整個(gè)項(xiàng)目需要個(gè)10G的硬盤空間;
4:vs2015第二版或者更新的版本, 安裝的時(shí)候要選擇自定義安裝(選擇Visual C++下的3個(gè)選項(xiàng),MFC);
以及window10的SDK, 反正看到SDK就選上吧 , 否則還要重新安裝VC2015:
?
5:下載depot_tools:https://src.chromium.org/svn/trunk/tools/depot_tools.zip;
6:下載以后解壓, 把depot_tools設(shè)置為環(huán)境變量, ?和環(huán)境變量DEPOT_TOOLS_WIN_TOOLCHAIN ?= 0;
7:創(chuàng)建一個(gè)chrome_build目錄, 把chrome的源碼放在這兒(用git下載很慢很慢);如果是mac的系統(tǒng),直接參考官方文章:?http://www.chromium.org/Home
運(yùn)行下面代碼
mkdir chromium //創(chuàng)建目錄 cd chromium fetch --no-history chromium //同步代碼8:執(zhí)行gclient sync, 沒問題的話, 會(huì)自動(dòng)下載python和git,此時(shí)要注意, 因?yàn)橛蠫W, 我們要讓git的協(xié)議也走代理 ,
讓git走代理的前提是有一個(gè)代理服務(wù)器或者socks代理,我這邊用的是socks5的代理,代理端口為本地的1080:?
運(yùn)行下面代碼
git config --global https.proxy socks5://localhost:1080 git config --global core.proxy socks5://localhost:1080 git config --global http.proxy socks5://localhost:1080 git config --global http.sslVerify false? 如果要取消git的代理我們執(zhí)行下列命令:
運(yùn)行下面代碼
git config --system (或 --global 或 --local) --unset http.proxy git config --system (或 --global 或 --local) --unset httpx.proxy git config --system (或 --global 或 --local) --unset core.proxy9:以上那一步是給git設(shè)置代理, 代理為本地的sock5, 但是還沒給python設(shè)置代理, 如果不給python設(shè)置代理, 將會(huì)導(dǎo)致python下載文件失敗, 我們通過修改depot_tools源碼的方式讓python走代理
修改幾個(gè)文件, 這個(gè)路徑是相對(duì)與depot_tools的目錄, 目前只要改3個(gè)python腳本文件,以后就不知道了, 要根據(jù)cmd給出的錯(cuò)誤源,自己改去:
depot_tools\gsutil.py
depot_tools\external_bin\gsutil\gsutil_4.15\gsutil\third_party\httplib2\python2\httplib2\__init__.py
depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\httplib2\python2\httplib2\__init__.py
在相關(guān)的文件import之后,主程序代碼后面添加:?
運(yùn)行下面代碼
import win_inet_pton import socks import socket socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080) socket.socket = socks.socksocket因?yàn)槲冶镜赜胹hadowsocks,所以把代理設(shè)置為本地的1080端口
下載過程如果卡死,可以通過任務(wù)管理器判斷后臺(tái)有沒有在下載, 如果真的卡死, 就ctrl+C, 強(qiáng)制取消, 然后重新執(zhí)行gclient sync, 重新同步;
10:在src目錄執(zhí)行, ?python會(huì)鏈接到https://storage.googleapis.com/下載第三方依賴模塊:
運(yùn)行下面代碼
gclient runhooks12: 生成BUILD.gn文件:
運(yùn)行下面代碼
gn gen out\Default13:到目前為止,代碼算是下載完畢, 然后執(zhí)行:
運(yùn)行下面代碼
ninja -C out/Default chrome如果機(jī)器不太行的話,我們可以修改編譯參數(shù):?ninja -j??配置同步編譯任務(wù)的數(shù)量 , 默認(rèn)是6, 如果機(jī)器比較卡就要改, 否者編譯的過程會(huì)出錯(cuò);
? ?
14:2萬多的文件, 讓他慢慢編譯:
15:幾個(gè)小時(shí)的編譯以后, 成果終于出來了:
?
回到頂部參考:
python走socks5代理的參考:http://www.cnblogs.com/diligenceday/p/5719978.html?
執(zhí)行g(shù)client時(shí)候無法下載遠(yuǎn)程rar包的解決方法: ?http://longyw.iteye.com/blog/2058949
這個(gè)哥們成功編譯了chromium :?http://wendal.net/2015/02/04.html
how to use git through a proxy: ?http://cms-sw.github.io/tutorial-proxy.html, 老版本的git需要手動(dòng)把socks5代理轉(zhuǎn)化為git代理, 新版本的不用, 所以只要有新版本的git就好了;
chromium源碼 download_from_google_storage 無法下載文件 :?http://www.cnblogs.com/ayanmw/p/4500825.html
給python安裝 pypi ,讓python走代理?:?https://pypi.python.org/pypi/setuptools#windows-simplified
官方文檔 :http://www.chromium.org/developers/how-tos/
? 只能說chromium的源碼實(shí)在太坑爹了, 即使有fq了,依然是各種悲劇, 哎:http://blog.csdn.net/qhh_qhh/article/details/49078425
回到頂部注意:
一定要給git和python設(shè)置代理, 如果使用更改host的方式實(shí)現(xiàn)FQ, 會(huì)出現(xiàn)驗(yàn)證的問題, 導(dǎo)致python和git同步文件失敗的情況
不要使用別人下載好的項(xiàng)目, ?因?yàn)閏hromium這個(gè)項(xiàng)目非常大, 編譯會(huì)涉及到操作系統(tǒng), 環(huán)境, 編譯工具, chromium的版本, 以及FQ, 文件下載失敗, 驗(yàn)證....各種問題, 自己能FQ下就去下
建議大家別看網(wǎng)絡(luò)上的chrome編譯教程, 因?yàn)閏hrome的代碼一直在更新, 現(xiàn)在也有了新的編譯方式,?別人能夠編譯的, 你肯定不能編譯,?最好的的方法是參考官方文檔, 必須看官方:
https://www.chromium.org/developers/
https://www.chromium.org/developers/how-tos/get-the-code
總結(jié)
以上是生活随笔為你收集整理的windows下编译chromium浏览器的15个流程整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebRTC第六步:下载webrtc
- 下一篇: WebRTC编译系统之GYP,gn和ni