难点在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
如果网络问题没搞好 下载源码的时候就会出现各种check out 失败 storage error 等等乱起八糟的问题
首先你要知道官网上的wiki都是按照最新版本说明的,按照网络上的教程做,如果是编译最新的cef3 大概率没问题,但是如果你想要像我这样编译旧版本3071,大概率会遇到各种错误,原因就是版本不同,尤其是google的配置版本,最新的都是不太兼容老版本的,所以这个过程中间有可能有各种问题
这里列出需要注意的版本
automate版本
cef版本
chrome版本
depot_tools版本
这里步骤和下面链接的方法基本一致,针对老版本只是有些资源不一样
https://www.cnblogs.com/heimao117/p/9064537.html
https://www.cnblogs.com/caibirdy1985/p/7244961.html
https://blog.csdn.net/xiezhongyuan07/article/details/84861617
你要根据的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
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