windows下編譯chromium瀏覽器的15個流程整理


  編譯chromium

  系統為windows, 國內在windows上編譯chromium的資料比較少, 我這篇文章只能作為參考, 記錄我遇到的一些問題,因為chromium團隊也會修改了代碼,或者編譯流程;

  如果你用linux或者mac,就別看這篇文章, 國外的編譯文檔都是linux和mac, 因為差別還是比較多的;

  15個編譯流程:

    1:chrome源碼; https://chromium.googlesource.com/chromium/chromium/

    2:系統要求:win7以后的版本, 處理器要求x86或x64;

    3:window下, 起碼要8G的空余內存, 硬盤最好是固態的, chromium整個項目需要個10G的硬盤空間;

    4:vs2015第二版或者更新的版本, 安裝的時候要選擇自定義安裝(選擇Visual C++下的3個選項,MFC);

        

    以及window10的SDK, 反正看到SDK就選上吧 , 否則還要重新安裝VC2015:

       

    5:下載depot_tools:https://src.chromium.org/svn/trunk/tools/depot_tools.zip

    6:下載以后解壓, 把depot_tools設置為環境變量,  和環境變量DEPOT_TOOLS_WIN_TOOLCHAIN  = 0;

    7:創建一個chrome_build目錄, 把chrome的源碼放在這兒(用git下載很慢很慢);如果是mac的系統,直接參考官方文章: http://www.chromium.org/Home

mkdir chromium //創建目錄
cd chromium 
fetch --no-history chromium //同步代碼

    8:執行gclient sync, 沒問題的話, 會自動下載python和git,此時要注意, 因為有GW, 我們要讓git的協議也走代理 ,

    讓git走代理的前提是有一個代理服務器或者socks代理,我這邊用的是socks5的代理,代理端口為本地的1080: 

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的代理我們執行下列命令:

git config --system (或 --global 或 --local) --unset http.proxy
git config --system (或 --global 或 --local) --unset httpx.proxy git config --system (或 --global 或 --local) --unset core.proxy

    9:以上那一步是給git設置代理, 代理為本地的sock5, 但是還沒給python設置代理, 如果不給python設置代理, 將會導致python下載文件失敗, 我們通過修改depot_tools源碼的方式讓python走代理

    修改幾個文件, 這個路徑是相對與depot_tools的目錄, 目前只要改3個python腳本文件,以后就不知道了, 要根據cmd給出的錯誤源,自己改去:

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

    在相關的文件import之后,主程序代碼后面添加: 

import win_inet_pton
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080) socket.socket = socks.socksocket

    因為我本地用shadowsocks,所以把代理設置為本地的1080端口

    下載過程如果卡死,可以通過任務管理器判斷后台有沒有在下載, 如果真的卡死, 就ctrl+C, 強制取消, 然后重新執行gclient sync, 重新同步;

            

    10:在src目錄執行,  python會鏈接到https://storage.googleapis.com/下載第三方依賴模塊:

gclient runhooks

    12: 生成BUILD.gn文件:

gn gen out\Default

    13:到目前為止,代碼算是下載完畢, 然后執行:

ninja -C out/Default chrome

     如果機器不太行的話,我們可以修改編譯參數: ninja -j  配置同步編譯任務的數量 , 默認是6, 如果機器比較卡就要改, 否者編譯的過程會出錯;

        

    14:2萬多的文件, 讓他慢慢編譯:

      

    15:幾個小時的編譯以后, 成果終於出來了:

      

  參考:

    python走socks5代理的參考:http://www.cnblogs.com/diligenceday/p/5719978.html 

    執行gclient時候無法下載遠程rar包的解決方法:  http://longyw.iteye.com/blog/2058949

    這個哥們成功編譯了chromium : http://wendal.net/2015/02/04.html

    how to use git through a proxy:  http://cms-sw.github.io/tutorial-proxy.html, 老版本的git需要手動把socks5代理轉化為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的源碼實在太坑爹了, 即使有fq了,依然是各種悲劇, 哎:http://blog.csdn.net/qhh_qhh/article/details/49078425

  注意:

    一定要給git和python設置代理, 如果使用更改host的方式實現翻牆, 會出現驗證的問題,  導致python和git同步文件失敗的情況

    不要使用別人下載好的項目,  因為chromium這個項目非常大, 編譯會涉及到操作系統, 環境, 編譯工具, chromium的版本, 以及翻牆, 文件下載失敗, 驗證....各種問題, 自己能翻牆下就去下

    建議大家別看網絡上的chrome編譯教程, 因為chrome的代碼一直在更新, 現在也有了新的編譯方式, 別人能夠編譯的, 你肯定不能編譯 最好的的方法是參考官方文檔, 必須看官方:

      https://www.chromium.org/developers/

      https://www.chromium.org/developers/how-tos/get-the-code

    

作者: NONO 
出處:http://www.cnblogs.com/diligenceday/ 
QQ:287101329 
微信:18101055830 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM