编译CEF
来源:互联网 发布:sql获取seq 编辑:程序博客网 时间:2024/06/06 03:27
见:http://note.youdao.com/share/?id=279678779a920fca6f65806bb0226b05&type=note#/
下载代码:
基于国内环境,直接下载不可能,所以需要使用VPN,这里使用hosts文件的方式。
从此处下载hosts文件:https://github.com/racaljk/hosts。
设置后有些代码的下载还是出错,自己修改hosts文件,指向opensource.google.com相同的地址。
通过python脚本下载代码:python automate-git.py
其中python需要python2.7.6版本。
automate-git.py从对应的cef branch中取对应版本。
下载时可以自己下载cef、chromium、depot_tools,并按下面的目录结构放好,再执行上面的更新代码命令进行版本的切换。假设下面的目录放在E盘,且automate-git.py脚本放在e:\cef2623目录下,下载的是cef的2623版本,那么命令这样写( 命令最后的部分是输出重定向,方便查日志 ):
python automate-git.py --download-dir=e:\cef2623 --branch=2623 >run.log 2>&1
构建工程:
如果上面的命名顺利执行完,且没有任何错误,那么工程已经构建完了,不需要继续往下看了。否则,就要开始痛苦的编译过程了。如果编译较早版本是肯定要经历此过程。
以下的步骤假设上面的代码已按结构下载到e:\cef2623目录下。
1、首先设置环境变量(最好将这些环境变量添加到系统环境变量中)
set WIN_CUSTOM_TOOLCHAIN=1
set GYP_MSVS_VERSION=2013
set GYP_GENERATORS=ninja,msvs-ninja
set CEF=E:\cef2623\depot_tools
set PATH=%CEF%\python276_bin\Scripts;%CEF%\python276_bin\;%CEF%;%PATH%;
SET VS90COMNTOOLS=%VS120COMNTOOLS%
解释:GYP_MSVS_VERSION表示需要的vs版本;GYP_GENERATORS设置需要生成哪类工程;VS90COMNTOOLS用于设置python使用的vs版本。
个别cef版本可能需要设置vs_root和sdk_root,分别指向vs和windows sdk安装目录。
2、下载缺失的代码
在命令行下,切换到e:\cef2623目录
执行 gclient sync --jobs 16来更新代码,确保所有代码下载完成。
执行 gclient runhooks来更新需要的第三方代码和工具。
重复执行 python automate-git.py --download-dir=e:\cef2623 --branch=2623 >run.log 2>&1 这个命令,直到更新不再出错
检测e:\cef2623\chromium\src\cef目录下是否已经生成cef.sln,如果没有生成,那么命令行下,切换到e:\cef2623\chromium\src\cef目录
执行 cef_create_projects.bat来生成sln解决方案
此时如果出错,那么根据提示进行处理,一般是缺少gyp、或者各种工具类此时打开git客户端,并切换到对应的仓库。这里skia为例,打开git shell,切换到chromium\src\third_party\skia目录下,执行 git reset --hard e2913ed9b25bf4a47194c4ca13beec0b5784842 命令将skia切换到e2913ed9b25bf4a47194c4ca13beec0b5784842版本,具体的版本号可以从chromium\src目录下的DEPS文件中查找,在文件中搜索skia.git@,找到后,后面的字符串就是要替换的版本号。所有出错的版本切换正确后,将可以生成正常的vs工程。如果还有问题,可以把某个第三方仓库clone下来,然后再reset指定版本。
3、在VS中编译项目
双击生成的cef.sln,在VS中打开,基本就可以使用了。
此时可能出现的错误如下:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。对于此错误,打开错误的文件另存为Unicode 1200格式(文件菜单下的,高级保存选项中,编码格式选择“Unicode - 代码页 1200”),然后重新编辑即可。
编译时,缺少dll,可以从系统的sdk目录或者其他地方复制到out\debug或release目录下。
编译时,还可以一个个项目挨个进行编译,逐个解决,因为批量编译时有时顺序不对会出现问题。
4、编译cef2623过程中遇到的问题
- 缺少d3dcompiler_47.dll,安装win8.1SDK,然后在其目录下搜索,然后复制到out\debug或release目录下。
- gl_bindings_skia_in_process编译不过去。根据修订记录是说在2454中就把gl_bindings_skia_in_process.cc、gl_bindings_skia_in_process.h从项目排除了,但是2623同步代码后发现还是哟此文件,且导致编译错误。解决问题的方式有三种:1)把出错的地址注释掉(本人采用的此方法);2)采用vs2015编译,因为出错是代码中使用了c++11的某些关键字导致,新版VS支持此关键字(此法未测试);3)在头文件中,通过#define constexpr const语句,把关键字转换为宏定义。
- EGLAttrib未定义错误:在"eglext.h" 第62行插入“typedef EGLAttribKHR EGLAttrib;”。
阅读全文
0 0
- 编译CEF
- 编译CEF
- 编译CEF(2171分支)
- CEF编译步骤
- cef库动态编译
- vs2015编译CEF
- 编译Java-cef
- CEF编译步骤
- vs2015编译CEF
- java-cef编译过程
- CEF 2987 WIN10 编译历程
- CEF中文教程(google chrome浏览器控件) -- CEF编译
- CEF
- Windows下从源码编译CEF
- Visual Studio 2013 编译CEF步骤
- Windows7下从源码编译CEF
- java-cef / 编译V49为Windows平台
- CEF 3.2623.1401 编译日志 2017
- BZOJ 1036 [ZJOI2008]树的统计Count
- 夏普手机要回归中国市场,它真的还有机会吗?
- ios网易云音乐源码、动画引擎源码等
- Hdu6046 hash(2017多校第2场)
- jQuery基础
- 编译CEF
- html页面获取项目路径
- 前端基础面试题大全-极乐科技(二)-HTML+CSS部分
- 修改WordPress中上传附件2M大小限制的方法
- 《Go语言入门》第一个Go语言程序——HelloWorld 标签: go语言helloworld 2015-11-29 18:46 4066人阅读 评论(4) 收藏 举报 分类: go语言入门(3)
- 图解sql中的inner join,full out join,left join,right join
- springboot【16】缓存之Redis
- 学生信息管理系统优化(三)+心得
- [NOIP提高组2002]均分纸牌