1. 程式人生 > >chromium瀏覽器開發系列第二篇:如何編譯最新chromium原始碼

chromium瀏覽器開發系列第二篇:如何編譯最新chromium原始碼

說一下為什麼這麼晚才發第二篇,上週和這周department的工作太多了,晚上都是十點半從公司出發,回家以後實在沒有多餘的精力去摸鍵盤了。所以請大家包涵!

上期回顧:

chromium原始碼下載:

  1. 找個靠譜的vpn(我試過了,網上說的不用vpn拿程式碼的都不靠譜);

  2. 獲取depot_tools,解壓,設定環境變數;

  3. gclient獲取pythongitsvn,設定環境變數;

  4. fetch–nohooks chromium –nosvn=true獲取原始碼;

  5. gclientsync --force –nohooks同步到最新

上邊的pythongit,也可以通過手動安裝,只要環境變數設定好了就可以。

環境配置:

獲取程式碼的最後一步是獲取編譯環境也就是Visual Studio 2013,上面所有的都成功以後,執行gclient runhooks就會把編譯需要的vs2013的檔案下載到本地,儲存在depot_tools\win_toolchain\vs2013_files路徑下,主要檔案是編譯需要的庫檔案。


windows上編譯chromium的官網幾個說明:

1.你必須把你的windows系統區域設定為英文,否則編譯時會發生錯誤:"The file contains a character that cannot berepresented in the current code page."這個問題在不切換語言的情況下也可以解決。請往下看。

2.因為之前的Visual Studio Express(免費版)存在一些問題,微軟也在update4中做了修復,所以現在官網說明用Visual Studio 2013 Update4(Community版或者Professional版)來編譯,其他的版本不支援。另外windows系統版本必須是win7 64位以後的版本,32位的已經不支援了。

另外一些說明:


選擇編譯的版本:

首先切換至src目錄下,列出所有版本的標籤,下面的命令將標籤記錄到tags.txt文字中:git tag >>tags.txt 2>&1

使用notepad++開啟後如下,只截取了最新

tag


大家可以切換到某個tag進行編譯,命令和切換到分支相同,使用如下命令:

git checkout -b chrome_43.0.2355.2_local_branch43.0.2355.2

建立本地分支chrome_43.0.2355.2_local_branch並切換到遠端43.0.2355.2tag上

通過git branch檢視是否成功:


同步程式碼:

gclient sync --nohooks --with_branch_heads --with_tags --outpu

t-json="log.json"–jobs 16

使用--nohooks可以減少每次都檢查編譯環境等資訊。

編譯:

1)生成工程,生成可以用vs2013開啟的sln,方便之後除錯使用。寫成批處理檔案執行:

set GYP_MSVS_VERSION=2013

set GYP_GENERATORS=msvs-ninja,ninja

set GYP_DEFINES=component=shared_library

set PATH=C:\depot_tools\python276_bin\;C:\depot_tools\;

python.exe src/build/gyp_chromiumsrc/chrome/chrome.gyp >>log.txt 2>&1

2)編譯工程

set PATH=C:\depot_tools\;

ninja -C src\out\debug chrome>>log.txt 2>&1

以上兩步把生成的log放在log.txt中,方便檢視。

說明:

1.set GYP_GENERATORS=msvs-ninja,ninja

最新程式碼生成工程時,會因為msvs-ninja無法開啟一些檔案,應該影響不大

2.set GYP_DEFINES=branding=Chromium proprietary_codecs=1 buildtype=Dev

優化設定,可以設定

3.set DEPOT_TOOLS_WIN_TOOLCHAIN=0

設定為0是讓gclient不要自動去構建環境,使用本機現有環境,可能修改的地方比較多,例如設定set GYP_DEFINES=windows_sdk_path="C:\Program Files(x86)\Windows Kits\8.0",一些json檔案的路徑等等。預設為0.

由於編譯chromium原始碼對warning要求很嚴格,所以我列出較重要的warning的解決方法:

1.針對編碼問題,和語言問題。

解決方法:最新版本已經將waring4996包含其中,但是沒有4819,加上它,會解決很多麻煩。

在src\build\common.gypi檔案中增加:

附上官方關於編譯引數的說明:



線上檢視版本號的地址:

http://omahaproxy.appspot.com/

第一時間獲得部落格更新提醒,以及更多技術資訊分享,歡迎關注個人微信公眾平臺:程式設計師互動聯盟(coder_online),掃一掃下方二維碼或搜尋微訊號coder_online即可關注,我們可以線上交流。


摘自:http://my.oschina.net/u/2335812/blog/394003