1. 程式人生 > >如何快速獲取Chromium原始碼和編譯

如何快速獲取Chromium原始碼和編譯

最近準備研究下Chromium原始碼,但在獲取Chromium原始碼以及編譯上浪費了太長時間,搜尋很多網友文章,總是無法滿足個人需求,所以寫下此篇博文,將自己的經驗心得

分享,希望那些和我有同樣困擾的朋友能有所獲。

注:

本文儘量圖文並茂,只想將自己已經成功的操作原樣放出,但有些設定並未詳加解釋,大家可以參考Google Chromium官方說明參考。

1. 準備

   1)   首先要做的是必須能訪問Google Chromium官方網站大笑,建 議網上申請一個VPN賬號,現在應該都收費了,不過一年300左右,可以承受。

          根據以上鍊接,不難得出以下配置:

           Win7 x64

 (最好系統語言選擇英文)

           VS2013 + Update 4

  3)   下載Google專用工具集depot_tools

           具體步驟:

           a. git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

           

  b. 新增 安裝路徑到Path環境變數

            

       c. 執行gclient,depot_tools 工具集會安裝chromium team定製的git和python

             

2.  下載

      

      從連結中可以看出截至目前為止,最新的stable版本是42.0.2311.135,其實在筆者寫這篇博文之前,這個 版本一直是42.0.2311.90,所以我下面

      的 截圖是以我以前操作為例,大家莫要誤會。

      但是問題來了,最新的版本一般不是這個版本,如果你想找到你想要的版本,一般推薦的步驟如下:

      >   fetch chromium

      >   git checkout -b 42.0.2311.90_local    42.0.2311.90

      >   gclient sync--with_branch_heads [--jobs 16

   (注:[]表該命令列選項可選)

    
      本人現住居所10M頻寬,VPN使用美國線路 (延遲200ms),真正完全執行完上面第一步(fetch chromium)需要長達一天之久,甚至更長(我沒有精確統計過,因為我的

      VPN不 穩定,隔4小時左右就會自動斷開,需要手動執行gclient sync --force 以保證能跟上上次的操作 ,其實至今我都不敢確信是否此操作不會漏失檔案)。這種等待實在

     讓人難以忍受。所以只得另尋他法。

      第一種:

           

          但是下載完後,發現解壓就有問題。。。

      結果: 失敗

   
        第二種:

     >  git clone -b 42.0.2311.90 --depth 1 https://chromium.googlesource.com/chromium/src.git

     >  gclient sync --force

     >  gclient runhooks

    執行第三步,報錯:

   ImportError: No module named gyp
   Error: Command E:\opensource\depot_tools\python276_bin\python.exe src/build/land

      結果:失敗

      第三種:

     >  gclient sync --nohooks --no-history  -r 7d100c0e9df1d093c61d7e2c16daf1327d7cc163     >  gclient runhooks

       結果:失敗 原因同第二種

最終終於找到了第4種,已有高手在github放了最新的stable版本,筆者極力推薦,


本人具體操作如下:

      >  解壓至 E:\chromium\42.0.2311.90_tar\src

          

     >    放一份.gclient檔案和src同級目錄,

          

內容如下

  1. solutions = [  
  2.   {  
  3.     "managed": False,  
  4.     "name": "src",  
  5.     "url": "https://chromium.googlesource.com/chromium/src.git",  
  6.     "custom_deps": {},  
  7.     "deps_file": ".DEPS.git",  
  8.     "safesync_url": "",  
  9.   },  
  10. ]  

      >  set DEPOT_TOOLS_WIN_TOOLCHAIN=0


     >   run 'gclient runhooks'

       

OK. 大功告成. 所有過程所花時間不會超過1小時。

3  編譯

這步如網上其他網友所說,非常簡單,確實如此。  

      具體操作如下:

      >  配置環境變數方便以後VS除錯

         

     >  使用ninja編譯

        

      最終在我的神舟小本上,執行完畢,耗時3小時之久。

       但結果是值得的   大笑

       

總結:

這次 自己下載並編譯成功Chromium,真是歷盡艱辛。其實我覺得若能耐心下來學習git和python指令碼,然後看下Google depot_tools中的封裝的一些指令碼,肯定可以得到

比我更好的方案。

再接再厲!