
轉載請注明出處: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就可以了。
編譯過程十分漫長,大概六七個小時,看到下面的提示就代表編譯成功了:

生成的文件如下:

3.4 生成CEF二進制分發(fā)包
當前在src目錄下,切換到cef\tools目錄下,執(zhí)行下面的命令:
./make_distrib.bat --ninja-build --minimal --x64-build
這個過程還比較快,出現(xiàn)下面的提示就成功了:

生成的文件如下:

到這里整個CEF就編譯完成了。
生成的cefclient在/cef/chromium_git/chromium/src/out目錄下
生成的分發(fā)包在/cef/chromium_git/chromium/src/cef/binary_distrib目錄下
4.寫在最后
編譯中的大部分問題都是源碼下載不全導致的,嘗試重新下載,如果實在解決不掉,就刪掉源碼重新開始。
到這里,Chromium CEF源碼的編譯就完成了,有問題可以給我留言評論,謝謝。