Chromium內(nèi)核瀏覽器編譯記(五)Windows版本CEF編譯

封面

轉載請注明出處:http://www.itdecent.cn/p/547c326f72ea?v=1750037700181

本文出自 容華謝后的博客

0.寫在前面

本篇文章是用來記錄編譯Windows版本CEF的步驟和踩過的坑,以防止后續(xù)再用到的時候忘記,同時也希望能夠幫助到遇到同樣問題的同學。

簡單介紹下CEF,CEF的全稱是Chromium Embedded Framework(Chromium嵌入式框架),它是一個開源的軟件框架,用于嵌入Chromium瀏覽器引擎到其他應用程序中。允許開發(fā)者將Chromium的強大的Web渲染引擎嵌入到他們自己的應用程序中,以實現(xiàn)內(nèi)嵌的瀏覽器功能,目前支持Windows、Linux、macOS平臺。

因為是Windows版本的編譯,就沒有使用虛擬機,步驟基本和Linux版本一致,安裝環(huán)境、下載源碼、修改源碼支持Mp4、編譯源碼、生成CEF分發(fā)包。

1.準備工作

因為Chromium的源碼都在墻外,所以在下載源碼之前,先要開啟代理。

1.1 安裝應用

安裝最新版本的Git和Python3就可以了,安裝Python的時候注意要勾選自動配置環(huán)境變量。

安裝Visual Studio 2022版本IDE,工作負載勾選使用C++的桌面開發(fā),如果在編譯過程中提示W(wǎng)indows 10 SDK錯誤,在微軟官網(wǎng)下載一個單獨的SDK安裝包重新安裝就可以。

1.2 配置depot_tools

首先建立一個工作文件夾比如cef,下載depot_tools.zip解壓到cef目錄中,在系統(tǒng)變量的PATH變量中,添加depot_tools路徑。

下載地址:https://storage.googleapis.com/chrome-infra/depot_tools.zip

1.3 配置下載工具代理

在cef目錄下新建一個.boto文件:

[boto]
proxy=127.0.0.1
proxy_port=端口號

然后在環(huán)境變量,系統(tǒng)變量中新建一個NO_AUTH_BOTO_CONFIG變量,寫上boto文件的全路徑。

2.源碼下載

2.1 創(chuàng)建目錄結構

直接右鍵新建目錄和空白文件就可以了,最終的目錄結構是這樣的:

~/cef/
    automate/
        automate-git.py
    chromium_git/
        cef/
        chromium/
        update.bat
    depot_tools/
    .boto

2.2 下載automate-git.py腳本

文本內(nèi)容直接復制到automate目錄下的automate-git.py文件中就可以。

文件地址:https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py

2.3 創(chuàng)建update.bat腳本

在chromium_git目錄下新建一個update.bat腳本。

腳本內(nèi)容:

python ..\automate\automate-git.py --download-dir=d:\cef\chromium_git --branch=7204 --chromium-checkout=138.0.7204.0 --depot-tools-dir=d:\cef\depot_tools --no-distrib --no-build

其中 --branch 是CEF的分支版本,可以指定需要的版本,如果需要最新版本直接去掉這個參數(shù)就可以,--chromium-checkout 是Chromium源碼的Tag版本,如果不需要指定可以去掉。注意如果需要指定版本,CEF的版本和Chromium的版本要保持一致。

--download-dir 后的路徑修改成你設備上的實際路徑,--depot-tools-dir 改成在1.2中下載的depot_tools的路徑。

2.4 下載源碼

啟動一個Windows PowerSell窗口,以管理員身份運行,首先設置代理與Git緩存。

$env:http_proxy = "http://127.0.0.1:7890"
$env:https_proxy = "http://127.0.0.1:7890"
git config --global https.postBuffer 524288000
git config --global http.postBuffer 524288000

然后執(zhí)行update.bat指令,可以看到下面的進度提示:

下載源碼

提示這個就代表下載完了,如果中途下載失敗了,重新執(zhí)行上面的命令就可以了:

下載源碼完成

3.源碼編譯

3.1 支持音視頻

源碼下載完成后,需要修改下支持音視頻,打開這個頭文件:

chromium_git/chromium/src/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config_components.h

#define CONFIG_SIPR_PARSER 1 由0修改為1,啟用FFmpeg。

3.2 生成工程

在chromium_git\chromium\src\cef目錄下,新建create.bat文件,復制以下內(nèi)容:

set GN_DEFINES=is_official_build=true use_thin_lto=false proprietary_codecs=true ffmpeg_branding=Chrome
set GN_DEFINES=use_sysroot=true symbol_level=1 is_cfi=false use_thin_lto=false use_vaapi=false ffmpeg_branding=Chrome proprietary_codecs=true is_official_build=true chrome_pgo_phase=0
set GN_ARGUMENTS=--ide=vs2022 --sln=cef --filters=//cef/*
call cef_create_projects.bat

然后PowerShell切換到此目錄,執(zhí)行create.bat命令,看到這個提示就代表構建成功了:

生成工程文件

3.3 編譯cefclient

切換到src目錄下,終端輸入下面的命令:

ninja -C out/Release_GN_x64 cefclient

如果想要生成Debug版本,Release_GN_x64改成Debug_GN_x64就可以了。

編譯過程十分漫長,大概六七個小時,看到下面的提示就代表編譯成功了:

編譯cefclient

生成的文件如下:

cefclient

3.4 生成CEF二進制分發(fā)包

當前在src目錄下,切換到cef\tools目錄下,執(zhí)行下面的命令:

./make_distrib.bat --ninja-build --minimal --x64-build

這個過程還比較快,出現(xiàn)下面的提示就成功了:

編譯完成

生成的文件如下:

分發(fā)包

到這里整個CEF就編譯完成了。

生成的cefclient在/cef/chromium_git/chromium/src/out目錄下

生成的分發(fā)包在/cef/chromium_git/chromium/src/cef/binary_distrib目錄下

4.寫在最后

編譯中的大部分問題都是源碼下載不全導致的,嘗試重新下載,如果實在解決不掉,就刪掉源碼重新開始。

到這里,Chromium CEF源碼的編譯就完成了,有問題可以給我留言評論,謝謝。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容