難點在cef的編譯上
首先甩出問題總結
95%的問題出現在網絡連接和各個版本問題,我這裏列出來的可能也不全或者有錯誤,但是你只要記住 是這兩個方向的問題就行了
資源中的資源僅使用3071版本 其他版本大概率會失敗
https://download.csdn.net/download/maxiaosheng521/12268262
https://download.csdn.net/download/maxiaosheng521/12248968
https://download.csdn.net/download/maxiaosheng521/12249032
https://download.csdn.net/download/maxiaosheng521/12249038
1.網絡問題
如果網絡問題沒搞好 下載源碼的時候就會出現各種check out 失敗 storage error 等等亂起八糟的問題
2.版本問題
首先你要知道官網上的wiki都是按照最新版本說明的,按照網絡上的教程做,如果是編譯最新的cef3 大概率沒問題,但是如果你想要像我這樣編譯舊版本3071,大概率會遇到各種錯誤,原因就是版本不同,尤其是google的配置版本,最新的都是不太兼容老版本的,所以這個過程中間有可能有各種問題
這裏列出需要注意的版本
automate版本
cef版本
chrome版本
depot_tools版本
3.下載編譯
這裏步驟和下面鏈接的方法基本一致,針對老版本只是有些資源不一樣
https://www.cnblogs.com/heimao117/p/9064537.html
https://www.cnblogs.com/caibirdy1985/p/7244961.html
https://blog.csdn.net/xiezhongyuan07/article/details/84861617
4.版本問題解決
你要根據的cef版本 確定你的chromium版本 確定你的depot版本 automate
這裏以我cef3071版本舉例
1.
首先你要看你的cef版本需要的編譯環境
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md 查看cef版本要求
我的3071就是需要vs2015 update3 和win10 14393sdk
這裏安裝的時候最好就是默認路徑,如果不在默認路徑還有可能遇到各種問題
2.
確定cef版本
https://bitbucket.org/chromiumembedded/cef 切換版本
拷貝automate-git.py, 這裏網上教程都是用的最新的,我們改成用對應版本的automate-git
3.確定depot_tools的版本 ,這個我沒有找到特別的方法來確定,根據使用最新的depot_tools,看看編譯的時候報什麼錯誤,根據錯誤倒推到舊版本
https://chromium.googlesource.com/chromium/tools/depot_tools/+log
例如,我編譯3071版本用最新的depot_tools, 會報一個缺少checkcall module attribute的錯誤,就是gclient_util中,相應的函數發生了變化,只能從上面列表中倒推查找改文件 最好找到的commit 是c0758331ea
然後通過在depot_tools目錄下執行命令倒退版本
git reset --hard c0758331ea
然後重新執行update.bat 還有build.bat
僅供參考 如果使用注意修改相對應的路徑 cef版本 還有vs版本
update.bat
set CEF_USE_GN=1
set DEPOT_TOOLS_UPDATE=0
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=c:\code\chromium_git --depot-tools-dir=c:\code\depot_tools --no-distrib --no-build --no-depot-tools-update --force-clean --force-update --branch=3071 --checkout=4a193051a9ce3da206290e349b4c463d35abc8e1
create.bat
set CEF_USE_GN=1
set GN_DEFINES=use_jumbo_build=true is_official_build=true ffmpeg_branding=Chrome proprietary_codecs=true
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/* --enable-decoder='rv10,rv20,rv30,rv40,cook,h263,h263i,mpeg4,msmpeg4v1,msmpeg4v2,msmpeg4v3,amrnb,amrwb,ac3,flv' --enable-demuxer='rm,mpegvideo,avi,avisynth,h263,aac,amr,ac3,flv,mpegts,mpegtsraw' --enable-parser='mpegvideo,rv30,rv40,h263,mpeg4video,ac3'
call cef_create_projects.bat
build.bat
ninja -C out/Release_GN_x64 cef
五.UE4集成
UnrealEngine-4.23.1-release\Engine\Binaries\ThirdParty\CEF3\Win64 對應的文件全部替換
UnrealEngine-4.23.1-release\Engine\Source\ThirdParty\CEF3\cef_binary_3.3071.1611.g4a19305_windows64只替換libcef.lib
總結:
首先一定要根據你的cef 版本 來找對應的automate-git.py 文件, 對於老版本不能使用最新的
然後就是嘗試使用不同的depot_tools版本,其他的步驟就和網上的其他教程大同小異了
列出官網的網址
sample Test
http://opensource.spotify.com/cefbuilds/index.html
cef版本
https://bitbucket.org/chromiumembedded/cef/commits/?search=4a193051a9ce3da206290e349b4c463d35abc8e1
cef介紹
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md
cef編譯指南
https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md
chromium介紹
http://www.chromium.org/Home
chromium
https://chromium.googlesource.com/chromium/src.git/+refs
chromium 3071版本
https://chromium.googlesource.com/chromium/src.git/+/refs/tags/59.0.3071.15
Chrome編譯
https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md