当前位置:   article > 正文

windows平台编译CEF_cef编译

cef编译

环境要求

  • Intel芯片
  • windows10 英文版
  • 梯子

本次构建机器配置

CPU:Intel E31275 3.4G

内存:16G

硬盘:500G固态硬盘

本次安装软件版本

depot_tools commit:963e01c76c
CEF Branch:5563
CEF commit:ebf5d6ab43c61ebd6ece0c504e15fe73b8da59d6
Chromium Version:111.0.5563.148

Visual Studio 2019
Windows 10 SDK 10.0.20348.0

版本限制

使用vs2019编译Chromium支持的最后一版本是111,后面版本需要vs2022

Chromium支持win7的最后一版本是109

操作系统

中文操作系统需要修改英文模式

(1)打开Windows 设置,选择时间和语言

(2)选择区域选项,将国家或地区设置成美国

(3)选择语言选项,点击添加语言,选择英语(美国),下一步勾选设置为我的Windows显示语言

(4)完成语言包的切换后会要求注销账户,根据提示注销

(5)重新登录账户

(6)回到刚才的语言选项,点击管理语言设置

(7)点击更改系统区域设置,选择英语(美国),勾选 Bate 版:使用 Unicode UTF-8 提供全球语言支持 选项

(8)点击确定,按照提示重启系统,重启完成后会将语言设置成英文        

或者添加系统参数

  1. set PYTHONLEGACYWINDOWSSTDIO=utf8
  2. set PYTHONIOENCODING=utf8
  3. set PYTHONUTF8=1

 网络代理工具和代理配置

  1. set http_proxy=http://127.0.0.1:10809
  2. set https_proxy=http://127.0.0.1:10809
  3. git config --global http.proxy %http_proxy%
  4. git config --global https.proxy %https_proxy%
  5. set BOTO_CONFIG=C:\code\boto.cfg
  6. set NO_AUTH_BOTO_CONFIG=C:\code\boto.cfg

boto.cfg

  1. [Boto]
  2. proxy=127.0.0.1
  3. proxy_port=10809
  4. proxy_type=http

取消代理

  1. set http_proxy=
  2. set https_proxy=
  3. git config --global --unset http.proxy
  4. git config --global --unset https.proxy

官网地址

官网构建chromium方法

windows_build_instructions

官网构建cef方法

MasterBuildQuickStart

官方构建cef成品下载地址

CEF Automated Builds

官方jcef git地址

GitHub - jcefmaven/jcefbuild: Builds for JCef

1.安装Visual Studio和安装windows sdk

Visual Studio版本和SDK版本可查看:BranchesAndBuilding

Visual Studio历史版本下载地址

运行以下命令进行安装,安装Visual Studio时候可以不装windows sdk,后面手动下载安装

  1. $PATH_TO_INSTALLER.EXE ^
  2. --add Microsoft.VisualStudio.Workload.NativeDesktop ^
  3. --add Microsoft.VisualStudio.Component.VC.ATLMFC ^
  4. --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
  5. --add Microsoft.VisualStudio.Component.VC.MFC.ARM64 ^
  6. --includeRecommended

安装windows sdk

Windows SDK下载地址按需下载

安装时候必须勾选Debugging Tools for windows

2.创建工作目录

  1. md C:\code\automate
  2. md C:\code\chromium_git
  3. md C:\code\depot_tools

3.depot_tools

下载 depot_tools.zip,解压到depot_tools文件夹

运行"update_depot_tools.bat" 安装python和git

  1. cd c:\code\depot_tools
  2. update_depot_tools.bat

4.automate-git.py

下载 automate-git.py 放到 automate文件夹

5.设置系统环境变量

1.Path 新增一个路径c:\code\depot_tools

2.创建一个系统变量DEPOT_TOOLS_WIN_TOOLCHAIN 值0

6.拉取代码

C:\code\chromium_git创建update.bat,内容如下

  1. set download_dir=c:\code\chromium_git
  2. set depot-tools-dir=c:\code\depot_tools
  3. set cef_branch=5563
  4. set GN_DEFINES=use_jumbo_build=true ffmpeg_branding=Chrome proprietary_codecs=true
  5. set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
  6. python ..\automate\automate-git.py --download-dir=%download_dir% --depot-tools-dir=%depot-tools-dir% --branch=%cef_branch% --no-distrib --no-build

设置好代理后 执行脚本,会自动拉取cef和chromium的源码
总共20G左右

一次运行不成功就运行多次,知道不报错为止

7.自动构建与打包

C:\code创建autobuild.bat,内容如下

  1. set download_dir=c:\code\chromium_git
  2. set depot-tools-dir=c:\code\depot_tools
  3. set cef_branch=5414
  4. set GN_DEFINES=proprietary_codecs=true ffmpeg_branding=Chrome is_official_build=true is_debug=false symbol_level=0 enable_nacl=false
  5. set GYP_MSVS_VERSION=2019
  6. set CEF_ARCHIVE_FORMAT=tar.bz2
  7. python automate/automate-git.py --download-dir=%download_dir% --depot-tools-dir=%depot-tools-dir% --branch=%cef_branch% --minimal-distrib --client-distrib --force-clean --x64-build --with-pgo-profiles --no-debug-build --no-depot-tools-update --no-chromium-update --force-config

自动构建并打包,打包到C:\code\chromium_git\chromium\src\cef\binary_distrib目录下

参数名称参数含义

 --minimal-distrib

最小打包

--client-distrib

客户端打包

--force-clean

强制清理src中的out和cef,并重新下载cef

--x64-build

64位构建,不加此参数为32位构建

--with-pgo-profiles

pgo插件?

--no-debug-build

不构建debug

--no-depot-tools-update

不更新depot-tools

--no-chromium-update

不更新chromium
--force-config强制更新.gclient配置

8. 手动构建

8.1. 为源码创建解决方案

拉取代码后
切换到目录 C:\code\chromium_git\chromium\src\cef
创建create.bat 内容如下

  1. set GN_DEFINES=use_jumbo_build=true ffmpeg_branding=Chrome proprietary_codecs=true is_component_build=false
  2. set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/*
  3. call cef_create_projects.bat

发布时记得设置is_component_build = false

运行create.bat后,out成功生成

8.2. 执行编译

切换到C:\code\chromium_git\chromium\src 编译chromium内核

ninja -C out\Release_GN_x64 cef

9. 其他

1)同步chromium代码时候要使用官方提供方式下载,不要直接使用git同步,不然会出现构建时间异常的问题。

造成C:\code\chromium_git\chromium\src\build\util

LASTCHANGE.committime文件中,值为0

LASTCHANGE文件中,LASTCHANGE_YEAR=0

出现如下报错

比如报这样的错

git log -1 --format=%H %ct

比如报这样的错

python3.exe ../../build/write_build_date_header.py gen/base/generated_build_date.h -2142000

正常这两个文件应该是

LASTCHANGE

  1. LASTCHANGE=168eebf2055fd26ca8c71787b7b3f9fe7c90d13d-refs/branch-heads/5414@{#1459}
  2. LASTCHANGE_YEAR=2023

LASTCHANGE.committime

1674498815

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/882277
推荐阅读
相关标签
  

闽ICP备14008679号