QCefView编译配置(Windows-MSVC)(11)
QCefView编译配置(Windows-MSVC)
文章目录
- QCefView编译配置(Windows-MSVC)
- 1、概述
- 2、准备工作
- 3、添加环境变量
- 4、更换cef源码版本
- 5、CMake构建
- 6、Visual Studio编译
- 7、安装编译后的文件
- 8、验证编译结果
更多精彩内容 |
---|
👉个人内容分类汇总 👈 |
👉Qt - Web混合开发👈 |
1、概述
-
什么是CEF
Chromium嵌入式框架(CEF)是一个简单的框架,用于在其他应用程序中嵌入基于Chromium的浏览器。
CEF是由Marshall Greenblatt于2008年创立的BSD许可开源项目,基于Google Chromium项目。与主要专注于Google Chrome应用程序开发的Chromium项目本身不同,CEF专注于促进第三方应用程序中的嵌入式浏览器用例。CEF 通过提供生产质量的稳定 API、跟踪特定 Chromium 版本的发布分支和二进制发行版,将用户与底层 Chromium 和 Blink 代码的复杂性隔离开来。CEF 中的大多数功能都有默认实现,这些实现提供丰富的功能,同时用户几乎不需要集成工作。
-
什么是QCefView
QCefView是为Qt框架开发的一个封装集成了Chromium Embedded Framework库的Wdiget UI组件。使用QCefView可以充分发挥CEF丰富强大的Web能力,快速开发混合架构的应用程序。
- 使用Qt开发者熟悉的Forms,signal/slot来开发应用
- 方便直观的Javascript/C++互操作方式
-
为何选择QCefView而不用Electron?
从设计思路和最终形态来讲QCefView和Electron是完全不同的技术。
- QCefView只是一个为Qt框架开发的UI组件,Electron则是一个功能完备的应用开发框架
- QCefView是为Native系统开发者设计的,Electron对前端开发者更友好
- QCefView使用C++作为主要开发语言,Electron全部基于Javascript
- QCefView提供便捷直观的Javascript/C++互操作方式,Electron通过编写插件实现Web/Native互操作
2、准备工作
-
Qt版本:Qt5.12.5
-
编译器:MSVC2017-64
-
可以下载我打包好的QCefView+CefViewCore+cef源码
- 链接:https://pan.baidu.com/s/10dUWZBUNwm7PFLr1tzsuXw 提取码:uv2k
- https://download.csdn.net/download/qq_43627907/87613483
-
可以下载我编译好的库文件
-
QCefView官方网站
-
CEF源码
-
CMake:QCefView通过CMake管理项目构建,所以请先安装CMake。最低要求版本为3.19.1,推荐使用最新版本。
-
CefViewCore:
-
我选择的版本:
-
下载命令:
git clone https://github.com/CefView/CefViewCore.git
-
-
QCefView:
-
我选择的版本:
-
下载命令:
git clone https://github.com/CefView/QCefView.git
-
-
将CefViewCore下载后拷贝到QCefView文件夹下
3、添加环境变量
-
第一步需要添加QTDIR环境变量,否则CMAKE构建时会报错;
-
在开始菜单搜索【环境变量】
-
打开【系统属性】窗口,点击【环境变量】按键;
-
点击【新建】,变量名输入【QTDIR】,变量值输入【D:\Qt\Qt5.12.5\5.12.5\msvc2017_64】
4、更换cef源码版本
-
MSVC-2017编译器不支持编译新版本的cef,经过测试,可以选择【91.0.4472.164】以下版本;
-
打开CefViewCore文件夹下的CefConfig.cmake文件,将高版本的注释掉,取消91版本的注释;
5、CMake构建
-
创建一个build文件夹,打开CMake,将QCefView文件夹下的CMakeLists.txt拖入CMake中,然后将构建生成路径设置为创建的build文件夹;
-
点击【Configure】,编译器选择【Visual Studio 15 2017,X86】,然后点击【Finsh】;
-
这时候如果网络不好或者离线环境则会卡在下列这一步,这是在自动下载cef源码,如果网络不好就会下载失败;
-
可以复制
https://cef-builds.spotifycdn.com/cef_binary_91.1.23+g04c8d56+chromium-91.0.4472.164_windows64.tar.bz2
到浏览器或者迅雷中下载,下载完成后拷贝到QCefView\CefViewCore\dep
文件夹下,然后点击【Configure】,就会自动解压cef源码; -
勾选【BUILD_DEMO】可以同时编译生成cef的示例程序(可以不勾选);
-
修改编译后的安装路径【CMAKE_INSTALL_PREFIX】;
-
点击【Configure】->【Generate】->【Open Project】,自动打开VS;
6、Visual Studio编译
-
鼠标右键选择【ALL_BUILD】->【生成】;
-
编译后会报下列错误信息;
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2660 “CefWindowInfo::SetAsChild”: 函数不接受 5 个参数 QCefView C:\Users\mhf\Desktop\Test\QCefView\src\details\QCefViewPrivate.cpp 102
-
双击错误信息转至报错位置,可以看出这里时通过判断cef的版本宏 是否91版本;
-
鼠标选中报错的
SetAsChild
函数,右键选择【转到定义】; -
可以发现函数定义只有两个参数,而我们选择的CEF版本是【91.1.23】,实际上是大于91的版本,这里宏判断有一点bug;
-
将
#if CEF_VERSION_MAJOR > 91
改为#if CEF_VERSION_MAJOR >= 91
,然后【重新生成】就可以编译了;
7、安装编译后的文件
-
鼠标右键选择【INSTALL】->【生成】;
8、验证编译结果
-
由于在CMake构建时指定了安装路径为
E:/QCefView
,所以安装后如下所示; -
进入QCefViewTest文件夹下,双击运行QCefViewTest.exe;
相关文章:
![](https://img-blog.csdnimg.cn/093706d56d8a4769b1816075ec295931.png#pic_center)
QCefView编译配置(Windows-MSVC)(11)
QCefView编译配置(Windows-MSVC) 文章目录QCefView编译配置(Windows-MSVC)1、概述2、准备工作3、添加环境变量4、更换cef源码版本5、CMake构建6、Visual Studio编译7、安装编译后的文件8、验证编译结果更多精彩内容👉个…...
![](https://www.ngui.cc/images/no-images.jpg)
Token原理
Q:分布式场景下如何生成token以及使用token的流程: 在分布式场景下,可以采用以下方式生成 token 和进行权限认证: 1. 生成 token: 使用JWT(JSON Web Token)生成 token。JWT 是一种基于 JSON …...
![](https://img-blog.csdnimg.cn/20a7f1b58dfb4660b75d7f021c157d57.png#pic_center)
③【Java组】蓝桥杯省赛真题 持续更新中...
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中...一、错误票据题目描…...
![](https://img-blog.csdnimg.cn/img_convert/e33637908a8e2c2f0cadfb6b6c630ad9.gif)
linux实验之shell编程基础
这世间,青山灼灼,星光杳杳,秋风渐渐,晚风慢慢 shell编程基础熟悉shell编程的有关机制,如标准流。学习Linux环境变量设置文件及其内容/etc/profile/etc/bashrc/etc/environment~/.profile~/.bashrc熟悉编程有关基础命令…...
![](https://img-blog.csdnimg.cn/img_convert/c018c9be6d97f2c690306cb2d94b5255.png)
C语言小程序:通讯录(静态版)
哈喽各位老铁们,今天给大家带来一期通讯录的静态版本的实现,何为静态版本后面会做解释,话不多说,直接开始!关于通讯录,其实也就是类似于我们手机上的通讯录一样,有着各种各样的功能,…...
![](https://www.ngui.cc/images/no-images.jpg)
写CSDN博客两年半的收获--总结篇
👨💻作者简介:练习时长两年半的java博主 🎟️个人主页:君临๑ ps:点赞是免费的,却可以让写博客的作者开心好几天😎 不知不觉间,在csdn写博客也有两年半的时间了&#x…...
![](https://img-blog.csdnimg.cn/7d16f95fd8b5448fa2a44e53578be9a3.png)
中科亿海微FPGA应用(一、点灯)
1.软件: https://download.csdn.net/download/weixin_41784968/87564071 需要申请license才能使用:软件试用申请_软件试用申请_中科亿海微电子科技(苏州)有限公司 2.开发板: 芯片EQ6HL45,42.5k LUT。 3…...
![](https://www.ngui.cc/images/no-images.jpg)
ElasticSearch - SpringBoot整合ES:实现搜索结果排序 sort
文章目录00. 数据准备01. Elasticsearch 默认的排序方式是什么?02. Elasticsearch 支持哪些排序方式?03. ElasticSearch 如何指定排序方式?04. ElasticSearch 如何按照相关性排序?05. ElasticSearch 查询结果如何不按照相关性排序…...
![](https://img-blog.csdnimg.cn/img_convert/1a4db016ad334bd3bff86ff82a31f554.png)
IDEA的全新UI可以在配置里启用了,快来试试吧!
刚看到IDEA官方昨天发了这样一条推:IDEA的新UI可以在2022.3版本上直接使用了!开启方法如下:打开IDEA的Setting界面,在Appearance & Behavior下有个被标注为Beta标签的New UI菜单,具体如下图:勾选Enable…...
![](https://www.ngui.cc/images/no-images.jpg)
第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移
文章目录第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移备份处于活动状态时自动进行故障转移备份不活动时的自动故障转移对各种中断场景的镜像响应响应主要中断场景的自动故障转移第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移 备份处于活动状态…...
![](https://img-blog.csdnimg.cn/img_convert/4330a86bfdcdb793ac38e77461798d33.webp?x-oss-process=image/format,png)
Barra模型因子的构建及应用系列七之Liquidity因子
一、摘要 在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子、NonLinear Size因子和Book-to-Price因子,并分别创建了对应的单因子策略,其中Size因子和NonLinear Siz因子具有很强的收益能力…...
![](https://img-blog.csdnimg.cn/598207aac0f5449abf5776e0e590c60d.png)
走进二叉树的世界 ———性质讲解
二叉树的性质和证明前言1.二叉树的概念和结构特殊的二叉树:二叉树的性质前言 本篇博客主要讲述的是有关二叉树的一些概念,性质以及部分性质的相关证明,如果大伙发现了啥错误,可以在评论区指出😘😘 1.二叉树…...
![](https://img-blog.csdnimg.cn/20a7f1b58dfb4660b75d7f021c157d57.png#pic_center)
【SSM】Spring + SpringMVC +MyBatis 框架整合
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ SSM框架整合一、导入相关依赖二、配置web.xml文…...
![](https://img-blog.csdnimg.cn/dd52615e6d4d419bb71365add1e3c7ac.png#pic_center)
【算法基础】一篇文章彻底弄懂Dijkstra算法|多图解+代码详解
博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:算法、数据结构、Java等相关知识。博主主页: 是瑶瑶子啦所属专栏: 算法 ;该专栏专注于蓝桥杯和ACM等算法竞赛🔥近期目标&…...
![](https://img-blog.csdnimg.cn/img_convert/e81ce2c68c9e825ecbd927cf5df44dd0.jpeg)
第二十三天01MySQL多表查询与事务
目录 1. 多表查询 1.1 概述 1.1.1 数据准备 1.1.2 介绍 1.1.3 分类 1.2 内连接 1.2.1 语法 1.2.2 案例演示 1.3 外连接 1.3.1 语法 1.3.2 案例演示 1.4 子查询 1.4.1 介绍 1.4.2 标量子查询 1.4.3 列子查询 1.4.4 行子查询 1.4.5 表子查询 1.5 案例 1.5.1 介…...
![](https://img-blog.csdnimg.cn/img_convert/8f7ec6370a6e6a16510db6cad5c73635.png)
TCP协议详解
1.TCP的准备条件在古代的时候,古人们经常写书信进行交流,写书信的前提是你要知道这份信是要寄给谁在网络中,我们通过ip端口号找对目标对象,但是现在网站一般会对ip端口注册一个域名,所以我们一般就是对域名进行查找&am…...
![](https://img-blog.csdnimg.cn/img_convert/c2c35e3f8e9d5de0ae93995ef197aa58.png)
Activiti7与Spring、Spring Boot整合开发
Activiti整合Spring 一、Activiti与Spring整合开发 1.1 Activiti与Spring整合的配置 1)、在pom.xml文件引入坐标 如下 <properties><slf4j.version>1.6.6</slf4j.version><log4j.version>1.2.12</log4j.version> </properties> <d…...
![](https://img-blog.csdnimg.cn/1bbb0d6ffed4426594469d353af6fc01.png)
基于SpringBoot实现冬奥会运动会科普平台【源码+论文】
基于SpringBoot实现冬奥会科普平台演示开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&#…...
![](https://img-blog.csdnimg.cn/e15b88a853574cf790eab90d2fca6520.gif#pic_center)
一文吃透SpringBoot整合mybatis-plus(保姆式教程)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ primer plus(第六版)编程练习答案 第4章 复合类型
一、程序清单 arrayone.cpp // arrayone.cpp -- small arrays of integers #include <iostream> int main() {using namespace std;int yams[3]; // creates array with three elementsyams[0] = 7; // assign value to first elementyams[1] = 8;yams[2] = 6;i…...
![](https://img-blog.csdnimg.cn/8d444ca57623469bacac3e96d379fdbf.png)
Kafka源码分析之Producer(一)
总览 根据kafka的3.1.0的源码example模块进行分析,如下图所示,一般实例代码就是我们分析源码的入口。 可以将produce的发送主要流程概述如下: 拦截器对发送的消息拦截处理; 获取元数据信息; 序列化处理;…...
![](https://img-blog.csdnimg.cn/9f1affa0db554326a58d3e2c1a41bb48.png)
springboot校友社交系统
050-springboot校友社交系统演示录像开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:e…...
![](https://img-blog.csdnimg.cn/img_convert/67a0a2292e41f9ba37d2a44d836945d0.png)
python flask项目部署
flask上传服务器pyhon安装下载Anacondasudo wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh可根据需要安装对应的版本https://repo.anaconda.com/archive/解压anaconda压缩包bash Anaconda3-5.3.1-Linux-x86_64.sh解压过程中会…...
![](https://img-blog.csdnimg.cn/1a863479bc7f4e4281caf0cad00268ad.png)
常见排序算法(C语言实现)
文章目录排序介绍插入排序直接插入排序希尔排序选择排序选择排序堆排序交换排序冒泡排序快速排序递归实现Hoare版本挖坑法前后指针版本非递归实现Hoare版本挖坑法前后指针版本快排的优化三值取中小区间优化归并排序递归实现非递归实现计数排序排序算法复杂度及稳定性分析不同算…...
![](https://img-blog.csdnimg.cn/img_convert/73a5f96c5ae144f79b93c6c9d58e8083.png)
基于jsp+ssm+springboot的小区物业管理系统【设计+论文+源码】
摘 要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于小区物业管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了小区物业管理系统,它彻底改变了过去…...
![](https://img-blog.csdnimg.cn/f9bca6ee56b041b99e0a55b4df039a96.png)
Elasticsearch 学习+SpringBoot实战教程(三)
需要学习基础的可参照这两文章 Elasticsearch 学习SpringBoot实战教程(一) Elasticsearch 学习SpringBoot实战教程(一)_桂亭亭的博客-CSDN博客 Elasticsearch 学习SpringBoot实战教程(二) Elasticsearch …...
![](https://www.ngui.cc/images/no-images.jpg)
try-with-resource
try-with-resource是Java 7中引入的新特性,它可以方便地管理资源,自动关闭资源,从而避免了资源泄漏的问题。 作用 使用try-with-resource语句可以简化代码,避免了手动关闭资源的繁琐操作,同时还可以保证资源的正确关闭…...
![](https://www.ngui.cc/images/no-images.jpg)
leetcode148_排序链表的3种解法
1. 题目2. 解答 2.1. 解法12.2. 解法22.3. 解法3 1. 题目 给你链表的头结点head,请将其按升序排列并返回排序后的链表。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullp…...
![](https://img-blog.csdnimg.cn/eb192564054c49898b258a5e77516650.png)
使用stm32实现电机的PID控制
使用stm32实现电机的PID控制 PID控制应该算是非常古老而且应用非常广泛的控制算法了,小到热水壶温度控制,大到控制无人机的飞行姿态和飞行速度等等。在电机控制中,PID算法用的尤为常见。 文章目录使用stm32实现电机的PID控制一、位置式PID1.计…...
![](https://img-blog.csdnimg.cn/cd73d526d25a461f9f0142661df3b3ff.png)
数学原理—嵌入矩阵
目录 1.嵌入矩阵的基本作用 2.嵌入矩阵的数学解释 3.嵌入矩阵在联合分布适应中的数学推导主要包括以下几个步骤 4.在JDA中,怎么得到嵌入矩阵 5.联合分布自适应中如何得到嵌入矩阵 (另一种解释) 1.嵌入矩阵的基本作用 在机器学习中&a…...
![](/images/no-images.jpg)
wordpress 调用多媒体/资源优化排名网站
解决vue不兼容ie浏览器的方法参考文章: (1)解决vue不兼容ie浏览器的方法 (2)https://www.cnblogs.com/maibao666/p/11081188.html 备忘一下。...
![](http://blog.itpub.net/p_w_upload/201406/21/26230597_1403334445647t.jpg)
b2c外贸营销网站建设/广东疫情中高风险地区最新名单
cacti监控一个web上的多个tomcat第二部分2,看到手动在web界面添加cacti的tomcat模板文件,太耗时太麻烦,所以另选途径再构造一份cacti下的tomcat模板文件。 2.1 直接替换tomcat字符串在后面加9500端口 想要弄亲自构建另外一个tomcat监控的模板…...
![](/images/no-images.jpg)
delphi WordPress/深圳高端seo公司助力企业
启动页的作用 在我遇到这个实际问题之前,我一直认为启动页的作用是美化产品,提升软件逼格。但实际上,它更重要的是起到了一个拦截器的作用。比如,当App首页需要动态得从网上加载数据时,就必须请求网络权限,…...
![](https://img-blog.csdnimg.cn/img_convert/85588e31a33fb0ec16851fae90f3f38d.png)
做企业网站推广多少钱/百度竞价排名事件分析
目录 第二章 掌控SpringBoot基础篇 2.1 Spring Boot ? 2.1.1 与Spring关系 2.1.2 与SpringCloud关系 2.1.3 最新的Spring Boot3 新特性 2.1.4 如何学好框架 2.2 脚手架 2.2.1 使用脚手架创建项目 2.2.2 IDEA创建SpringBoot项目 2.3 代码结构 2.3.1.1 单一模块…...
![](https://img-blog.csdnimg.cn/img_convert/2840b526c313a724a7d723ce4bcd4c90.gif)
广州宝盈网络科技有限公司网站/成年学校培训班
大家好,我是本公众号的小编每天加班都到很晚,是为了给大家收集最好玩的游戏从做这个号开始到现在已玩过几千款各式各样的游戏现推荐的每一款游戏都是小编亲自试玩过几千款游戏中我们只推荐一百款这一百款游戏无论从玩法、画质都是同类型中最好最优质而且…...
![](/blog/893865/201604/893865-20160418095534929-984659970.png)
网站怎么推广怎么做/百度网站收录
断点调试的启动方式android studio启动断点调试的方法有两种,其一是下好断点,然后点击以Debug的形式编译运行程序。第二种方式是在程序运行中启动断点调试。方式:启动app后,点击RUN—>,弹出如下的提示框:在需要的地…...