CEF源码编译
Posted zxpo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CEF源码编译相关的知识,希望对你有一定的参考价值。
CEF的构造说明:
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
chromium的源码地址:
https://chromium.googlesource.com/chromium/src.git
cef的源码地址:
https://bitbucket.org/chromiumembedded/cef/src/2357?at=2357
CEF源码中的文件CHROMIUM_BUILD_COMPATIBILITY.txt中有相应的chromium的tag(如:refs/tags/43.0.2357.130)
下载源码编译,先下载depot_tools并添加到环境变量path中。
自动下载编译:
1、mkdir code
2、cd code
3、下载depot_tools并解压到当前文件夹。
4、创建automate文件夹,将下载的automate-git.py放在其下面。
5、创建chromium文件夹,并在其下面创建update.bat,update.bat文件内容为:
python ..\automate\automate-git.py --download-dir=g:\code\chromium --depot-tools-dir=g:\code\depot_tools --branch=2357
6、在命令行执行update.bat自动下载并编译源码。
备注:bat中的选项可以有:
--download-dir 源码下载目录
--depot-tools-dir 工具包目录
--branch 源码分支(默认trunk主分支)
--checkout 指定patch版本(默认最近提交)
--no-build 下载完不自动开始编译(我们需要修改编译配置)
--no-update 确定源码下载完毕仅重新编译时使用
--force-build 强制编译(发现在有成功编译的时候再编译不会执行,可以加上这个
--no-debug-build 只编译release版本
--no-release-build 只编译debug版本
如何确定--checkout值
如果确定需要分支下的最新版本,请略过此节。
1.从http://cefbuilds.com/检查目标版本的hash值。例:3.2357.1281.gd660177中的gd660177
2.从https://bitbucket.org/chromiumembedded/cef/branches/进入目标分支。例:2357
3.在Commits中检索目标hash,注意版本号中hash为8位,commits中为7位,可以忽略第一位搜索。例:gd660177->d660177
4.点击相应commit,即可在地址栏中得到checkout值。例:d66017718b0f0d44da42b706c3c2aa5c0c103852
手工下载编译:
先下载chromium源码,再下载cef源码,cef源码务必放在chromium源码的src下面的cef文件夹里。
在命令行窗口执行gclient,会更新depot_tools,下载需要的python、git等。
1、设置环境变量
DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_GENERATORS=ninja,msvs-ninja
GYP_MSVS_VERSION=2013
//支持MP3
set GYP_DEFINES=component=shared_library disable_nacl=1 ffmpeg_branding=Chrome proprietary_codecs=1 windows_sdk_path="C:\Program Files (x86)\Windows Kits\8.0"
2、用提供的common.gypi覆盖src\build\common.gypi,里面主要是加入了一些警告忽略配置。
3、进入到\2062\chromium\src\cef目录,执行cef_create_projects.bat
4、进入到\2062\chromium\src目录,使用ninja进行编译(区别在于编译过程信息输出的位置)
ninja -C out\Debug libcef
或
ninja -C out\Debug libcef > d:\build.log
以上是关于CEF源码编译的主要内容,如果未能解决你的问题,请参考以下文章
如何编译出cef2623中的cef_sandbox.lib静态库
如何编译出cef2623中的cef_sandbox.lib静态库