vs2017編譯chromium 68穩定版本第1篇


1,實現需要能訪問國外上網:

     請准備一個網速快而且能順暢鏈接到Google的網絡環境,你可以選擇用VPN,或者使用境外服務器都可以。這里我是通過阿里雲購買的一台按量付費的美國服務器,配置如下:2 核CPU 8GB內存 英文版Windows 2008操作系統,這個是官方提供最低配的編譯要求了,由於服務器實在太貴所以買的是最低配版。如果你想編譯的更快一點建議購買更高配置的服務器。

2,開始安裝VS2017:

按照官方的安裝文檔要求來:https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md

這里要非常注意一下,網上每年都有人寫編譯chromium的文章,但是官方的文檔會經常更新,這樣會導致以前人家寫的文章會過時,很多人在沒有參考官方文檔的情況下盲目按照網上以前的方法去編譯導致失敗(當然包括我今天寫的文章也有可能會過時,所以如果你想編譯成功建議仔細看看官方的文檔和每一個步驟)。

按照官方文檔的要求需要Visual Studio 2017 (>=15.7.2) or 2019 (>=16.0.0) 去編譯,我是下載了VS2017的英文企業版進行編譯的,大家可以去網上搜索企業版的注冊碼隨便找一個就可以注冊成功。安裝的方式有2種,一種是通過參數的方式安裝,添加下面的參數進行安裝:

--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Component.VC.ATLMFC ^

另外一種就是直接雙擊安裝選擇有包含NativeDesktop和C++,MFC選項的安裝,並且安裝高於10.0.17134的 Windows 10 SDK版本。

安裝成功之后還需要安裝:SDK Debugging Tools,英文版操作系統按照這個方法修改,打開:Control Panel → Programs → Programs and Features → 選擇 “Windows Software Development Kit” → Change → Change → Check “Debugging Tools For Windows” → Change.。

完成以上步驟就已經完成了VS2017的環境搭建。

3,安裝:depot_tools

下載:https://storage.googleapis.com/chrome-infra/depot_tools.zip  並且解壓到你想要編譯Chromium的地方,這里強調下准備編譯Chromium的磁盤必須要足夠空間,我建議至少100G的空間,當然越大越好。

解壓好depot_tools之后,就是添加環境變量:

把depot_tools的路徑加到 PATH 環境變量的最前面,如果你電腦有安裝python的環境,建議先卸載。

然后再添加如下環境變量:

GYP_MSVS_VERSION=2017
DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_MSVS_OVERRIDE_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" 

cmd 命令行在 depot_tools目錄執行:gclient  安裝python和git等環境

4,配置git

$ git config --global user.name "My Name"
$ git config --global user.email "my-name@chromium.org"
$ git config --global core.autocrlf false
$ git config --global core.filemode false
$ git config --global branch.autosetuprebase always

5,創建一個chromium目錄

在chromium目錄執行:

fetch chromium

下載源碼,這個時間很漫長,中間斷了的話,可以通過gclient sync來同步代碼,我下載的時候沒有斷過。我下載源碼和源碼解壓總共用了10個小時左右,用的是阿里雲的不限制帶寬下載速度杠杠的,但是解壓花了很多時間可能是服務器CPU是2核的原因導致解壓的速度太慢,建議可以買核數更高的服務器。

# 上面成功后,執行下面命令去獲取所有的代碼分支信息 cd src git fetch --all git fetch --tags git pull

切換到你想要編譯的版本,默認下載的源碼是最新版本的源碼,如果你想要編譯指定的版本可以這樣去做:

參考:
https://omahaproxy.appspot.com/
http://www.chromium.org/developers/how-tos/get-the-code/working-with-release-branches

cd src # 在src目錄 # 創建新的分支b3440 git checkout -b b3440 68.0.3440.54 cd .. # zai src的上一級目錄(chromium目錄),重新運行gclient同步一下當前版本的代碼 gclient sync --with_branch_heads --with_tags 

6,編譯chromium,終於到了最核心的步驟,先跳轉到src目錄。

編譯參數說明:

target_cpu=“x86”:指明生成的針對X86架構的CPU。
is_debug=false:指明生成的是Release版本可執行程序。
is_official_build=true:指明使用Chrome官方的編譯優化建議。
proprietary_codecs:指明支持H264編碼,編譯時,自動H264相關組件,打包PE文件中。
enable_nacl=false:指明關閉支持NACL,這是一種Chrome插件,因為安全性,穩定性存在問題,已經很少使用了。
remove_webcore_debug_symbols=true:指明刪除內核層支持調試的符號文件,這樣,有助於減少文件體積,提高運行速度。

查看gn args 所有可用參數
gn 說明 https://www.chromium.org/developers/gn-build-configuration 

使用例子如下:

1,到src目錄先運行如下命令:

以編譯Debug為例:

執行命令:
gn gen out/Debug --ide=vs2017 --filters=//chrome 

在彈出的txt文件里面收入如下編譯參數內容:

target_os="win" target_cpu="x86" winsdk=10.0.17134.12 is_component_build=true is_debug=true is_official_build=false google_api_key=false google_default_client_id=false google_default_client_secret=false proprietary_codecs=true media_use_ffmpeg=true ffmpeg_branding="Chrome" remove_webcore_debug_symbols=true enable_nacl=false enable_hevc_demuxing=true enable_dolby_vision_demuxing=true enable_mse_mpeg2ts_stream_parser=true enable_hls_sample_aes=true enable_ac3_eac3_audio_demuxing=true

 命令執行完成之后:

再執行:ninja -C out\Debug chrome  就開始正式編譯生成可執行文件。

如果你要編譯成Release 版本可以按照什么的方法把Debug修改為Release,把編譯參數里面的is_debug=true 改為false.

我編譯一共花費了30多個小時,還是CPU的緣故,所以還是建議使用更多核的CPU來編譯。

最后上一張編譯成功的圖片:


免責聲明!

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



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