区分cef源码和chromium源码,
chromium源码:生成libcef.lib和libcef.dll的核心源码,可以定制很多功能,如开启h264,h265的支持
cef源码:libcef_dll_wrapper源码(用于二次调用libcef.dll接口),提供头文件和生成libcef_dll_wrapper.lib,以便调用libcef.dll的功能
Chromium支持vs2019编译的最后一版本是111,后面版本需要vs2022
支持win7的最后一版本是109,支持xp最后一版是3.2.
本次使用win10+cmake3.30+vs2022+cef109
下载并解压
首先下载官方二进制发布包(官方包没有解锁h264),下载地址为:CEF Automated Builds,本例下载的版本是:[cef_binary_109.1.16+g454cbc2+chromium-109.0.5414.87_windows32.tar]。注意可能需要代理才能下载。下载后解压到合适的目录。
解压后的目录结构大致如下:
[解压目录]
|-include -- 头文件目录
|-Debug -- 编译好的CEF库,Debug版
|-Release -- 编译好的CEF库,Release版
|-Resources -- CEF库需要的资源文件
|-libcef_dll -- CEF的C++包装类库源代码,需要手动编译
|-tests -- 包含了一些测试工程
|-CMakeLists.txt --CMake工程文件
下面开始编译CEF 的 C++ 的包装库。
编译
压缩包提供了CMake的工程文件,因此我们用 CMake 来生成 VS2022的工程,打开 cmake-gui。
在Where is the source code:里填上你解压的CEF3路径,
在Where to build the binaries里填上你要输出的位置,我新建了一个build vs2022的文件夹。
再点击Configure选择您的vs环境版本,如果是32位项目,就选win32,默认是x64。
确定后会开始生成配置,配置成功后,会在配置区域生成配置选项,这里可以根据实际情况选择是否使用 ATL 以及是否使用沙盒等,可能配置中间会出现红色的,不要管它,再点一遍Configure直到全部变黑。
点击Generate按钮,生成工程文件完成。您可以到你的Where to build the binaries设置的文件夹中看到生成好的工程文件了。
用VS2022打开它,编译 libcef_dll_wrapper
,编译成功后,会在 [工程目录]\libcef_dll_wrapper\Debug\
(如果是Release版,则是[工程目录]\libcef_dll_wrapper\Release\
)下找到编译后的 libcef_dll_wrapper.lib
。在开发过程中,这个 lib 是必须的。
cmake:包含cmake配置文件
debug:debug版本的libcef.dll, libcef.lib和其他需要的组件
include:所有cef头文件
libcef_dll:包含libcef_dll_wrapper静态库源码
Release:release版本的libcef.dll, libcef.lib和其他需要的组件
Resources:包含libcef.dll需要的资源
tests/cefclient:包含cefclient样例应用程序,这个应用程序演示了cef的各种功能
tests/cefsimple:包含cefclient样例应用程序,这个应用程序演示了创建浏览器窗口所需的最小功能
tests/ceftests: cef api的单元测试
tests/gtest:包含ceftests使用的谷歌c++测试框架
解锁h264和h265视频支持
如果要用支持H264的包,需要下载chromium源码(不是本文说的cef源码),自己重新编译二进制包,也就是生成支持h264的libcef.dll,我直接用大佬做好的支持H264,H265,MP3的二进制发布包,详见大佬博客:https://blog.csdn.net/CHNIM/article/details/128963412
大佬文章末尾放出了支持h264的二进制发布包,【cef_binary_109.0.1+gcd5e37a+chromium-109.0.5414.8_windows32_minimal_支持h264.tar】,下载后和本文开头说的方法一样的编译,把include头文件和自己编译的libcef_dll_wrapper.lib,以及大佬编译好的libcef.lib和libcef.dll等依赖文件复制到项目中即可。