Qt中使用CEF(Windows下)
最近项目中要在Qt中使用CEF(Chromium Embedded Framework),在这里总结下其中的几个要点。
下载合适的CEF版本
关于CEF的简介我们这里就不做介绍了,下载CEF可以有2种选择:
- 源码:强烈不建议下载源代码并编译构建(学习代码除外),下载源码需要你FQ、有良好的网速(要下载)和足够的耐心(据说有4、5个G,真的要下半天)。
- 自动构建版本:推荐这个使用这个版本。该版本提供了大部分已经编译完成的动态库及资源,只需要开发者手动编译一个wrapper静态库就可以了。这种版本分为当前发行分支(Current Release Branches)和遗留发行分支(Legacy Release Branches ),每个分支都有其编译要求,最低支持WinXp。
使用CMake和VS编译wrapper静态库
调用CMake来生成一个对应的VS工程,然后用VS打开并编译,这是windows下最方便的方法(配置CMake来编译的方法比较麻烦,不推荐)。以下是具体步骤:
- 安装VS和CMake(32位)
- 下载并提取自动构建版本的CEF压缩包。
- 打开VS的开发者命令提示行,cd到解压后的根目录中(包含README.txt的目录)。
- 运行命令
cmake -G "Visual Studio 14"(14对应VS2015,12对应VS2013),该命令会在根目录下生成cef.sln文件。 - 双击cef.sln,用VS打开该项目。
确保自己的Qt和CEF版本一致
- 运行库版本一致。使用CEF库时要保证整个程序的运行库链接版本是一致的,也就是说Qt静态库和CEF库必须用同一个运行库选项编译。但这里至关重要的一点就是CEF(自动构建版本)库的libcef.dll等动态库都是用/MT选项预编译好的(至少我试过的好几个CEF自动构建版本都是开启/MT编译的),我们只能更改Qt库的版本,可以考虑替换这些冲突的版本,重新编译或下载对应版本都是不错的选择。
- Debug/Release模式一致。否则的话,会出现_ITERATOR_DEBUG_LEVEL等一系列错误。
WinXp支持
只有比较老的CEF分支版本支持WinXp系统,而自动构建版本只支持Win7及以上,因此除了从源码编译外,你是没有办法从官方获取CEF的WinXp支持的。嗯,然后源码编译也不现实,只能向别人要了。
文档支持
CEF的文档不是与QT一个级别的,因此不要指望能很快上手,写代码前你最好把API以外的文档全看一遍。
Qt中使用CEF(Windows下)的更多相关文章
- 使用CEF(四)— 在QT中集成CEF(1):基本集成
QT作为C++下著名的跨平台软件开发框架,实现了一套代码可以在所有的操作系统.平台和屏幕类型上部署.我们前几篇文章讲解了如何构建一款基于CEF的简单的样例,但这些样例的GUI都是使用的原生的或者是控件 ...
- QT + OpenCV + MinGW 在windows下配置开发环境
由于研究项目需要,最近开始接触C++界面设计,关于“QT + OpenCV + MinGW在windows下配置开发环境”着实让人头疼,单次配置时间相当长,也十分不容易,本人第一次配置成 ...
- 第39课 Qt中的事件处理(下)
1. 事件的传递过程 (1)操作系统检测到用户动作时,会产生一条系统消息,该消息被发送到Qt应用程序 (2)Qt应用程序收到系统消息后,将其转化为一个对应的QEvent事件对象,并调用QObject: ...
- Qt Creator + MinGW 在windows 下的调试GDB停止工作解决
Qt的安装配置请参考本博客本分类下的其他相关文章,本文主要整理在调试时候遇到的问题和解决方法供遇到同样问题的同学参考.由于我之前也没有任何Qt的开发基础,做的也是硬件方面设计,所以这方面基础还是比较薄 ...
- QT中检索设定目录下所有指定文件的方法
void MainWindow::on_pushButton_clicked() { QDir dir=QFileDialog::getExistingDirectory(this, tr(" ...
- CEF中文教程(google chrome浏览器控件) -- Windows下编译Chromium
CEF中文教程(google chrome浏览器控件) -- CEF简介 2013-04-10 16:48 42928人阅读 评论(4) 收藏 举报 分类: CEF(2) 目录(?)[+] ...
- Windows下查看局域网内某台计算机的MAC地址
我们知道在局域网中,在Windows下,查看局域网内其他主机的ip和对应mac地址的命令是: arp -a 这样可以看到ip和mac地址的对应关系,还是比较方便的 但是有些时候使用arp命令并不能列出 ...
- [开源项目]Shell4Win,一个在Windows下执行shell命令的解释器
背景 顺利拿到心目中的理想offer之后,心里的负担一下减轻了很多,希望利用还没毕业之前这段难得的悠闲时间做一点有意义的事情.于是希望能做一个长久以来都想做的开源项目,就是题中提到的Windows下的 ...
- Qt中内存泄露和退出崩溃的问题 delete
Qt中帮程序员做了一些内存回收的事情,但正因为这些反而让对此不熟悉的人会屡屡犯错. 收录一篇不错的文章: 在C++中学习过程中,我们都知道: delete 和 new 必须 配对使用(一 一对应):d ...
随机推荐
- 小K的H5之旅-HTML的基本结构与基本标签
一.什么是HTML HTML是超文本标签语言,即网页的源码.而浏览器就是翻译解释HTML源码的工具. 二.HTML文档的结构 HTML文档主要包括三大部分:文档声明部分.<head>头部部 ...
- Scheme 中的 pair 和 list 简述
pair (cons 1 2) > (1 . 2) 系统返回(1 . 2).cons 操作给两个地址分配了内存空间,并把存放指向 1 的地址放在一个空间,把存放指向2的地址放在另一个空间.存放指 ...
- Java之JSON数据
特别注意:使用JSON前需要导包 操作步骤地址:http://blog.csdn.net/baidu_37107022/article/details/70876993 1.定义 JSON(JavaS ...
- 打印杨辉三角--for循环
要求打印7行直角杨辉三角 杨辉三角特点: 第1行和第2行数字都为1: 从第三行开始,除去开头和结尾数字为1,中间数字为上一行斜对角两个数字的和. 如下图: 打印结果: 代码如下: package 杨辉 ...
- vue2入坑随记(二) -- 自定义动态组件
学习了Vue全家桶和一些UI基本够用了,但是用元素的方式使用组件还是不够灵活,比如我们需要通过js代码直接调用组件,而不是每次在页面上通过属性去控制组件的表现.下面讲一下如何定义动态组件. Vue.e ...
- [Leetcode] Binary tree Zigzag level order traversal二叉树Z形层次遍历
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...
- mysql字符编码设置
1.显示当前编码信息 mysql>show variables like '%character%' +--------------------------+------------------ ...
- 流畅的python学习笔记:第一章
这一章中作者简要的介绍了python数据模型,主要是python的一些特殊方法.比如__len__, __getitem__. 并用一个纸牌的程序来讲解了这些方法 首先介绍下Tuple和nametup ...
- octomap中3d-rrt路径规划
路径规划 碰撞冲突检测 在octomap中制定起止点,目标点,使用rrt规划一条路径出来,没有运动学,动力学的限制,只要能避开障碍物. 效果如下: #include "ros/ros.h&q ...
- Docker Machine 详解
笔者在<Docker Machine 简介>一文中简单介绍了 Docker Machine 及其基本用法,但是忽略的细节实在是太多了.比如 Docker 与 Docker Machine ...