VS2022编译和打包CEF3(+chromium)源码

一、环境准备

在这里插入图片描述

http_proxy=127.0.0.1:10809
https_proxy=127.0.0.1:10809
(前面不要加http://,例如http://127.0.0.1:10809,这样反而不行)

在这里插入图片描述

在这里插入图片描述
4、设置VS2022环境变量,windows sdk自己在本地找,或者电脑下载一个everything.exe,查找比较快。这里可能会出现,有的人电脑装了好多版本的vs,建议最后装vs2022,不然可能后面编译找不到正确的windows sdk报错。
在这里插入图片描述
5、安装git. 装好后git需要设置一些配置。
参照 https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md在这里插入图片描述
git也要设置代理。
git config --global http.proxy=127.0.0.1:10809
git config --global https.proxy=127.0.0.1:10809
在这里插入图片描述
6、重启电脑,是为了让环境变量生效。

二、环境已准备就绪,下面开始拉取代码

(这里编译的不是master,而是指定branch)
先放官网地址:https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md#markdown-header-windows-setup
1、下载depot_tools.zip ,找个大一点的磁盘(200G左右),如果中途拉取失败的话,会有个_bad_scm文件夹生成,占用的空间非常大,所以建议200G,亲身体验。解压depot_tools,将depot_tools添加到path环境变量,并且拉到最上面。
在这里插入图片描述
2、用管理员打开CMD,进到depot_tools路径下面。执行update_depot_tools.bat,如果出现连接超时,说明代理没设置好,可以尝试将超时的链接拷贝到浏览器中去访问,看看能不能访问得到。或者在CMD上面再设置一次代理(CMD关闭就会失效)。

set http_proxy=127.0.0.1:10808
set https_proxy=127.0.0.1:10808

3、下载 automate-git.py,到automate文件夹下面,文件夹自己创建,跟depot_tools同级。进到automate文件夹,执行automate-git.py。如果出现超时说明是git代理没设置好。

4、创建create.bat脚本,内容是:

set GN_DEFINES=is_component_build=false //注意这个不要开,不然后面不好打包,插件太多
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome //开启H264支持,有个头文件要修改,自行百度
set GN_ARGUMENTS=--ide=vs2022 --sln=cef --filters=//cef/*
python3 ..\automate\automate-git.py --download-dir=F:\cef-code\chromium_git --depot-tools-dir=F:\cef-code\depot_tools  --no-build --branch=5672

is_component_build=false //注意这个不要开,不然后面不好打包,插件太多
--download-dir=F:\cef-code\chromium_git //源码会下载到这里面
--branch=5672 //代码分支版本
运行脚本,要等很久。中断了就重复运行,当然要先看一下是什么报错,我之前就是磁盘爆满中断。有可能也是梯子断了。估计要下一个晚上。

5、源码下完之后,
在这里插入图片描述
进到 chromium\src\cef里面,创建脚本create.bat:

set GN_DEFINES=ffmpeg_branding=Chrome proprietary_codecs=true is_official_build=true use_jumbo_build=true is_component_build=false
set GN_ARGUMENTS=--ide=vs2022 --sln=cef --filters=//cef/*
call cef_create_projects.bat

这里是创建CEF vs项目的脚本,运行之后会在 chromium\src\out 下面生成CEF的项目目录。
在这里插入图片描述
这里可能会报一个错:

RuntimeError: requested profile "F:\cef-code\chromium_git\chromium\src\chrome\build\pgo_profiles\chrome-win32-5672-1683023364-7247966391e939f36249c5509b49406c09455a6d.profdata" doesn't exist, please make sure "checkout_pgo_profiles" is set to True in the "custom_vars" section of your..........

解决办法:找到 chromium\src\build\config\compiler\pgo\pgo.gni 文件,chrome_pgo_phase=0
在这里插入图片描述
再次运行create.bat,这样就算是成功了
在这里插入图片描述

6、编译CEF。进到 chromium\src,运行 ninja -C out\Release_GN_x86 cef

只编译release_x86的,其它可自行编译。这里又要好久,估计有五万多个文件,又要半天。中途报什么字符集错误,不用管,编译没有中断就行。
在这里插入图片描述

7、编译sandbox,ninja -C out\Release_GN_x86_sandbox cef_sandbox

三、打包发行版本。

1、进到chromium\src\cef\tools 里面,有个打包脚本 make_distrib.bat,不过我们要修改一下里面的内容。

@echo off
python.bat %~dp0\make_distrib.py --allow-partial --minimal --no-symbols --no-docs --output-dir %~dp0\..\binary_distrib\ %*

然后运行命令 make_distrib.bat --ninja-build
这里可能会有报错,
在这里插入图片描述
会提示你 msvs_env.bat 抛出异常,这里是有个VS的环境变量找不到,应该是自定义安装目录导致找不到的,可以自己设置一下。脚本的意思是,先读取CEF_VCVARS的环境变量,没有就用
set vcvars = 设置一个相对的路径。
在这里插入图片描述

解决办法:

set CEF_VCVARS=D:\vs2022\VC\Auxiliary\Build\vcvars32.bat

或者修改 set vcvars = 的值,反正你得让它找到 vcvars32.bat
当然,如果你是编译64位的,要用 vcvars64.bat

2、再次运行 make_distrib.bat --ninja-build,应该就没有什么问题了。
在这里插入图片描述
生成的文件在 chromium\src\cef\binary_distrib 里面,
在这里插入图片描述
到此为止,剩下的就是用CMAKE去生成vs工程,然后做二次开发。当然,在chromium\src\out\Release_GN_x86 也是有生成好的exe,可以直接使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS2022编译CEF115是指使用Visual Studio 2022编译CEFChromium Embedded Framework)版本115。 首先,我们需要准备编译CEF115所需的环境和工具。这包括安装Visual Studio 2022开发环境,其中包含用于编译C++代码的编译器和相关工具。 接下来,我们需要获取CEF115源代码。可以在CEF的官方网站(https://bitbucket.org/chromiumembedded/cef)或GitHub上找到最新的CEF115代码。 一旦我们获得了源代码,我们可以使用Visual Studio 2022打开CEF115的解决方案文件(通常是一个.sln文件)。在Visual Studio的解决方案资源管理器中,我们可以看到CEF115项目的各个组件和依赖项。 在编译之前,我们需要确保已经正确配置了项目的构建属性。这包括指定输出目录和其他相关设置。通常,这些设置可以在项目属性窗口中进行修改。 接下来,我们可以选择编译整个CEF115解决方案或选择特定的项目进行编译。对于大型项目,编译整个解决方案可能需要更长的时间,而只编译部分项目可以提高编译效率。 在开始编译之前,我们可能会遇到一些编译依赖项的问题。这些问题可能涉及缺少依赖库、配置错误等。解决这些问题可能需要进行一些调整和配置。 一旦编译成功,我们将获得CEF115的二进制文件和库文件。这些文件可以用于开发自己的应用程序,或用于集成到现有的项目中。 需要注意的是,由于编译CEF115是一个比较复杂的过程,可能会遇到各种编译错误和依赖项问题。解决这些问题可能需要查阅相关的文档和资源,以便正确地配置和编译CEF115。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值