[CEF] Chromium Embedded Framework 在WIN7 下编译环境创建

HTML5的运用越来越广,IE的内核越来越另人无语。,我们不可能要求用户去安装一个chrome,但是我们可以将Chromium集成到自己的应用程序中去。

为此引入了Chromium Embedded Framework(CEF),该框架的官方网站为:https://bitbucket.org/chromiumembedded/cef

CEF按照官方说法分成CEF 和 CEF3,但是从官网上的信息看已经不在推荐使用CEF了,并且不在提供CEF的下载链接,因此本次任务的主角就是CEF3

从官方链接:https://cefbuilds.com/ 可以下载最新的源码

Dev Channel(trunk)为最新开发主干,研究用可以下载,做产品还是不推荐,可以下载次新版本的Branch。因为不同的Branch对应采用的Chromium版本不同,所以下载时注意Branch相应的Chromium版本。

例如:我下载时的

Dev Channel(truck) 对应 Chromium 48.0.2556.0

Branch 2526 对应 Chromium 47.0.2526.80

Branch 2171 对应 Chromium 39.0.2171.95

注意Branch 2171 ,因为该版本之后的分支将不再提供VS的工程项目文件。而本文的重点在于如何构建VS工程文件并编译通过,生成例子后,运行的程序。

因为Branch 2171之后的源代码不再提供VS工程文件,因此环境创建的第一步就是创建VS的工程文件。

下载源代码压缩包(7z格式),解压到独立目录后,看到CMakeLists.txt文件,就可知可以用CMake创建VS工程

Dev Channel(truck)分支下压缩包 cef_binary_3.2556.1368.g535c4fb_windows32.7z 为例,其解压根目录(默认为 cef_binary_3.2556.1368.g535c4fb_windows32 )下CMakeLists.txt文件相关信息如下

# - CMake version 2.8.12.1 or newer.
cmake_minimum_required(VERSION 2.8.12.1)

到 CMake 官网  https://cmake.org/download/ 可下载最新版本的CMake安装包或者压缩包

安装后,打开GUI版本的CMake(cmake-gui.exe)

where is the source code 和 where to build the binaries 均选择为cef_binary_3.2556.1368.g535c4fb_windows32.7z的解压根目录,即之前察看的CMakeLists.txt文件所在目录。

按 Generate 按钮 生成所需的工程文件,其间需要选择安装的VS编译环境,例如 Virtual Studio 10 2010

双击 where to build the binaries  对应目录下的 cef.sln 文件,打开VS环境(例如:VS2010)后,按F7对当前工程ALL_BUILD 生成解决方案,输出窗口跳出一堆的警告和错误,编译失败。

观察输出信息中的error信息,发现 libcef_dll_wrapper,cefsimple 和 cefclient 这3个工程都编译失败,错误信息例如

\include/base/cef_thread_collision_warner.h(182): error C2220: 警告被视为错误 - 没有生成“object”文件

\include/base/cef_thread_collision_warner.h(182): warning C4481: 使用了非标准扩展: 请重写说明符“override”

双击显示代码行:

 

virtual void warn() OVERRIDE;


警告表明该行代码使用了非标准的说明符OVERRIDE,警告编号4481,工程设置项将警告视为错误,所以产生了错误,错误编号2220

解决方法:

1.选择工程 libcef_dll_wrapper,在 右键菜单 选择 属性

2.在弹出 工程属性 对话框 配置(C):下拉列表中选择 所有配置

3.左侧属性树状列表选择:配置属性 -> C/C++ -> 高级

4.右侧属性列表选择: 禁用特定警告

5.在现有内容后添加 ;4481

6.按 确定

如法炮制 cefsimple 和 cefclient 两个工程后,重新生成解决方案

发现cefclient 还存在1个错误,2个警告(C4510和C4610),根据之前的经验,只要按照之前屏蔽4481警告的方法将4510和4610屏蔽。

重新生成解决方案,全部的工程编译通过。

设置启动项目为cefsimple 或者cefclient 后按F5 启动调试 可爱的测试程序界面出现了。


你可能感兴趣的:(CEF,CEF3)