- 快速稳定的VPN(非常重要,免费的VPN不靠谱,最好花钱买个VPN或者公司有稳定的翻墙。我公司自带翻墙,但是有几个代码检出地址有些问题,导致我检出了5天才下载好代码。这个条件打不到就别指望成功了)
- Win7或者更新的系统,必须64位
- VS2013 Update4(编译不同版本要求不一样,具体看Cef官网帮助,我用的是VS2013 Update5)
- Win10 SDK
- 60G剩余空间(用SSD最好,编译速度很依赖CPU和硬盘)
- 下载Python并添加到Path环境变量(我的是Python2.7,这个是为了运行脚本)
-
添加系统环境变量
- CEF_ARCHIVE_FORMAT=tar.bz2
- DEPOT_TOOLS_WIN_TOOLCHAIN=0
- CEF_USE_GN=0
- GYP_DEFINES=buildtype=Official
- GYP_MSVS_VERSION=2013(根据你的VS版本设置)
- GYP_GENERATORS=ninja,msvs-ninja
- 下载automate-git.py 脚本并保存到一个英文目录,最好直接在磁盘根目录建立个简单的目录就好,我的是E:\cef\
- 打开cmd切换到你的目录,然后输入命令来下载
python automate-git.py --download-dir=e:\cef\source --branch=2623 --no-build --no-distrib --force-clean
- 1
其中--branch=2623
是指定要下载的Cef版本;
--no-build --no-distrib
是只下载代码而不编译;
--force-clean
这个参数用于清理Chromium和Cef的一些检出信息,如果没有一次性下载成功而再次执行下载命令时,需要带上这个参数来清理一些信息,否则检出会失败(第一次下载时直接带上这个参数也可以)。
打开e:\cef\source\chromium\src\cef\cef.gypi文件,在variables节下添加如下配置信息
'proprietary_codecs': 1, 'ffmpeg_branding': 'Chrome',
- 1
- 2
分别打开e:\cef\source\chromium\src\third_party\ffmpeg\chromium\config\Chrome\win\ia32\config.h
和e:\cef\source\chromium\src\third_party\ffmpeg\chromium\config\Chrome\win\x64\config.h,在原有配置宏FFMPEG_CONFIGURATION
里增加以下:
–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’
我最开始就是碰到了这个错误,提示找不到
d3dcompiler_47.dll
这个文件。后来发现是我的Win10 SDK安装的不完整,导致(C:\Program Files (x86)\Windows Kits\10\Redist\D3D)目录里没有这个DLL文件。解决方法是去微软官网下载安装了最新的Win10 SDK。在编译配置文件里去掉这两个文件就可以:gl_bindings_skia_in_process.cc和 gl_bindings_skia_in_process.hh
修改h:\ws\source\chromium\src\third_party\swiftshader\include\egl\eglext.h,
在62行后加入typedef EGLAttribKHR EGLAttrib;
修改chromium/third_party/ffmpeg / ffmpeg_generated.gypi,
在行’libavformat/vorbiscomment.c’,后加入’libavformat/w64.c’,
查找gyp文件,把print_view_manager_base.h和print_view_manager_base.cc,放到print_view_manager.h和print_view_manager.cc前面
在src\build\common.gypi文件中:搜索
'msvs_disabled_warnings'
,设置其中的值为(我搜索到了好几处,每一处都这样设置了):
4091,4127,4351,4355,4503,4589,4611,4100,4121,4244, 4505,4510,4512,4610, 4838, 4995, 4996, 4334,4819,4396, 4125,4130,4131,4189, 4201, 4238,4245,4310,4428, 4481,4530, 4701, 4702,4706, 4067,4800,4251,4702,4456, 4457, 4458, 4459,4312,
- 1
- 2
- 3
- 编译前一定要设置系统区域为英语(美国)并重启,否则因为编码的源码会导致编译不通(控制面板-区域-管理-更改系统区域设置-英语(美国)
- 打开cmd切换到你的目录,然后输入命令来编译
python automate-git.py --download-dir=e:\cef3\source --branch=2623 --no-update --no-debug-build --build-log-file --verbose-build --force-distrib --force-build
- 1
其中--no-update
是让脚本不再更新代码,因为我们已经下载完毕了;
--no-debug-build
是只编译release版本,这样编译速度会快很多,--no-release-build
可以只编译debug版本;
--force-distrib --force-build
用于强制编译cef代码;
--build-log-file --verbose-build
用于输出编译日志到e:\cef\source
目录,名字为build-2623-release.log
,这个很重要,如果编译发生错误,可以打开这个日志文件并通过搜索关键字FAILED
来查找发生错误的文件;
如果需要64位版本,则添加--x64-build
参数
http://www.cnblogs.com/hezhixiong/p/5935143.html
http://www.cnblogs.com/longxiang92/p/6141653.html?utm_source=itdadao&utm_medium=referral
http://blog.csdn.net/yufei_lgq/article/details/53838270
http://blog.csdn.net/qsy2000/article/details/52845895?locationNum=12&fps=1
e:\cef\source\chromium\src\out\Release e:\cef\source\chromium\src\cef\binary_distrib
- 1
- 2
最终Dll、Lib、PDB、头文件下载地址(release、debug、x64):点我下载
如果网盘失效了,就直接联系我,我再上传
如果发现使用我的Dll程序无法运行,可以尝试把VS升级到VS2013 Update5,因为我编译cef用的就是VS2013 Update5
Redrain QQ:491646717 2017.1.8