- 不同系统可选择不同版本(Linux,MacOS,Windows等),因有需求故我选的是Win32版本(我的系统是Win10,64位)。
- 想要选择CEF其他版本可点击上图中的
Show All Builds
字样之后再点击Show More Builds
字样可出现更多版本。 - 我选择的是下图所示版本(当时下载的时候还是最新版本,等想起来截图做笔记已经更新了其他版本)。
关于CEF的版本
- Standard Distribution:标准二进制分布。包括头文件,libcef_dll_wrapper源代码,二进制文件,CMake配置文件以及cefclient和cefsimple示例应用程序的源代码。
- Minimal Distribution: 最小二进制分布。包括头文件,libcef_dll_wrapper源代码,发布构建二进制文件和CMake配置文件。不包括调试构建二进制文件或示例应用程序源代码。
- Sample Application:发布版本的cefclient示例应用程序。有关使用要求,请参阅随附的README.txt文件。
- Debug Symbols:Debug符号文件,必须提取并放置在具有相同名称和版本的CEF Debug二进制文件旁。
(官方用词是next to,不知道具体是放在同一个文件夹下还是怎样。没试过)
Debug build symbols. Must be extracted and placed next to the CEF Debug binary file with the same name and version.
- Release Symbols:Release符号文件,必须提取并放置在具有相同名称和版本的CEF Release二进制文件旁。
Release build symbols. Must be extracted and placed next to the CEF Release binary file with the same name and version.
我选择的是Standard Distribution版本
解压后有如下文件:(可解压到自己想要的文件夹下,我的地址为D:\Compilers\CEF\cef_binary_99.2.10+gfecf7ca+chromium-99.0.4844.51_windows32
,以下简称为目标地址
)
- cmake: 该目录下存放了配置和构建以Windows作为编译环境的cmake配置文件,具体内容可以自行查看。
- Debug和Release: 这两个文件夹中,打开会看到已经编译好的CEF核心库文件
- include: libcef本身提供的头文件以及wrapper会使用到的头文件
- libcef_dll: 存放了libcef_dll_wrapper源码。
- Resources: CEF作为内核的浏览器运行时需要用到的资源文件。
- tests: 存放了利用libcef、以及wrapper作为库来编写的浏览器Demo。其中,cefsimple编译出来的是一个简单的浏览器,而cefclient编译出来的是一个展示了cef许多API功能的exe。
下载CMake
下载
点击红色圈住的地方下载。(我当时下的是3.22.1版本)
历史版本(点击进去后可自行下载想要的历史版本)
安装
双击下载的msi文件,一直点击Next
或Install
即可。
因已安装过,没有截图,不好展示。CSDN或者其他软件都能搜到具体安装方式,可自行查找。在此附一个别人的完整安装教程完整安装教程
编译CEF
使用cmake进行编译配置
- 在
目标地址
下新建一个build
文件夹 - 打开cmake-gui.exe程序,在
Where is the source code
栏中选择源码所在目录(即目标地址
),在下方的Where to build the binaries
栏目中我们可以自定义任意位置,但是为了方便管理,我们选择刚建的build
文件夹 - 点击下图箭头所指的
Configure
- 按下图所示步骤选择。VS版本可自行选择,不必须跟我选的一模一样。但是由于我的电脑是64位的,下载的CEF是32位的,所以下图中箭头1所指的地方必须选
Win32
。否则后续在VS中编译CEF项目时会出现fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突
及error LNK2019: 无法解析的外部符号
等问题 - 出现
Configuring done
字样后点击下图中箭头所指的Generate
6.出现Generating done
字样后点击箭头所指的Open Project
打开项目。或者在build
文件夹下双击.sln
文件打开该项目
使用VS编译CEF项目
项目结构
- ALL_BUILD与ZERO_CHECK: 是cmake自动生成的辅助工程。
- cef_gtest与ceftests: 都是测试模块,这里不关心。
- cefclient: 一个包含CEF各种API演示的浏览器程序Demo。
- cefsimple: 一个简单的CEF浏览器程序Demo。
- libcef_dll_wrapper: 对libcef库的C++代码封装。上述cefclient与cefsimple都会用它。
我们首先完成libcef_dll_wrapper的编译,然后对cefclient以及cefsimple完成编译。
编译libcef_dll_wrapper
- 右击libcef_dll_wrapper,选择
设为启动项目
。会发现libcef_dll_wrapper字体加粗。 - 右击libcef_dll_wrapper,选择
生成
。结果如下
cefclient与cefsimple的编译步骤与libcef_dll_wrapper的一模一样,只要将操作对象换为cefclient或cefsimple即可。故此处不在赘述。且两者编译顺序不分先后。编译结果如下所示
样例展示
cefsimple
- 运行方法一
将cefsimple设为启动项(上面有步骤)点击上图红色方框。 - 运行方法二
进入之前创建的build
目录,后续路径为\tests\cefsimple\Debug
或\tests\cefsimple\Release
,双击该文件夹下的.exe
文件如下图所示
会发现运行结果是空白界面如下图所示
原因如下:
打开cefsimple项目下的cefsimple文件夹里的simple_app.cc文件,第105行可以看到默认访问http://www.google.com
。
将其修改为国内任意网站即可,此处改为做示例。重新编译过后再按照上述方法运行,结果如下图所示
cefclient
cefclient项目运行方法同cefsimple项目运行方法一致,只需将对象改为cefclient即可(若是使用方法一则将cefclient设为启动项,若是使用方法二则build文件夹后续路径为\tests\cefclient\Debug
或\tests\cefclient\Release
),且不需要修改代码。故此处不再赘述,运行结果如下图所示
在输入框里输入地址后敲击回车键,结果如下图所示