Qt中使用CEF(Windows下)

最近项目中要在Qt中使用CEF(Chromium Embedded Framework),在这里总结下其中的几个要点。

下载合适的CEF版本

关于CEF的简介我们这里就不做介绍了,下载CEF可以有2种选择:

  1. 源码:强烈不建议下载源代码并编译构建(学习代码除外),下载源码需要你FQ、有良好的网速(要下载)和足够的耐心(据说有4、5个G,真的要下半天)。
  2. 自动构建版本:推荐这个使用这个版本。该版本提供了大部分已经编译完成的动态库及资源,只需要开发者手动编译一个wrapper静态库就可以了。这种版本分为当前发行分支(Current Release Branches)和遗留发行分支(Legacy Release Branches ),每个分支都有其编译要求,最低支持WinXp。

使用CMake和VS编译wrapper静态库

调用CMake来生成一个对应的VS工程,然后用VS打开并编译,这是windows下最方便的方法(配置CMake来编译的方法比较麻烦,不推荐)。以下是具体步骤:

  1. 安装VS和CMake(32位)
  2. 下载并提取自动构建版本的CEF压缩包。
  3. 打开VS的开发者命令提示行,cd到解压后的根目录中(包含README.txt的目录)。
  4. 运行命令cmake -G "Visual Studio 14"(14对应VS2015,12对应VS2013),该命令会在根目录下生成cef.sln文件。
  5. 双击cef.sln,用VS打开该项目。

确保自己的Qt和CEF版本一致

  1. 运行库版本一致。使用CEF库时要保证整个程序的运行库链接版本是一致的,也就是说Qt静态库和CEF库必须用同一个运行库选项编译。但这里至关重要的一点就是CEF(自动构建版本)库的libcef.dll等动态库都是用/MT选项预编译好的(至少我试过的好几个CEF自动构建版本都是开启/MT编译的),我们只能更改Qt库的版本,可以考虑替换这些冲突的版本,重新编译或下载对应版本都是不错的选择。
  2. Debug/Release模式一致。否则的话,会出现_ITERATOR_DEBUG_LEVEL等一系列错误。

WinXp支持

只有比较老的CEF分支版本支持WinXp系统,而自动构建版本只支持Win7及以上,因此除了从源码编译外,你是没有办法从官方获取CEF的WinXp支持的。嗯,然后源码编译也不现实,只能向别人要了。

文档支持

CEF的文档不是与QT一个级别的,因此不要指望能很快上手,写代码前你最好把API以外的文档全看一遍。

posted @ 2017-07-20 22:30  lgxZJ  阅读(8260)  评论(4编辑  收藏  举报