QT+CEF(Chromium嵌入式框架)环境搭建,CEF库libcef_dll_wrapper.lib编译

上一章使用qt自家的QWebEngineView实现浏览器,存在一定兼容性和稳定性问题:
https://blog.csdn.net/weixin_40355471/article/details/120698537

本章将使用开源的CEF(Chromium嵌入式框架)实现qt内嵌浏览器,包括CEF库libcef_dll_wrapper.lib的编译、QT下调用库实现内嵌浏览器。
编译环境:cmake-3.21.0-rc3+qt5.13.0+vs2017.

资源下载

cmake官网下载地址,选择Windows x64 ZIP版本:
https://cmake.org/download/
CEF是二次构建,下载源码包:
https://cef-builds.spotifycdn.com/index.html#windows32
我下载的是:cef_binary_85.3.12+g3e94ebf+chromium-85.0.4183.121_windows32.tar.bz2

CEF库libcef_dll_wrapper.lib的编译

资源下载后解压缩,使用cmake打开,选择源码路径和构建目录,点击configure选择vs2017,再点击generate生成vs工程文件。
在这里插入图片描述
在构建目录下生成了cef.sln文件,使用vs2017打开,构建libcef_dll_wrapper即可生成静态库libcef_dll_wrapper.lib,debug和release版本都可以构建。
(ps,libcef_dll_wrapper和cefsimple工程,属性-配置属性-C/C+±代码生成-运行库,debug模式下都选多线程调试(/MTd),release模式下都选择多线程(/MT))
在这里插入图片描述

cefsimple样例编译运行

构建生成libcef_dll_wrapper.lib后,编译cefsimple工程,在\build\tests\cefsimple\Debug\目录生成cefsimple.exe可执行文件,双击打开程序默认访问google网站(需要fq),打开源码中\cef_binary_85.3.12_windows32\tests\cefsimple\simple_app.cc文件,把默认访问网址修改为https://www.baidu.com,即可正常访问。
在这里插入图片描述
效果图
在这里插入图片描述

遇到的问题

1、C2440 “初始化”: 无法从“R (__cdecl *)(base::internal::BindStateBase *,conditional<_Test,const std::string&,const std::string&>::type)”转换为“PolymorphicInvoke” libcef_dll_wrapper
刚开始下载的CEF版本是:cef_binary_94.4.9+g09ee681+chromium-94.0.4606.71_windows32,使用这个版本编译libcef_dll_wrapper工程时会报这个错误,最后选择较稳定的版本(cef_binary_85.3.12+g3e94ebf+chromium-85.0.4183.121_windows32.tar.bz2),规避这个错误。

2、MSB3073命令“setlocal;c101008d Failed to write the updated manifest to the resource of file
编译cefsimple工程时,在debug模式下会报这两个错误,release模式不报错;
解决:项目-属性-配置属性-链接器-调试,把生成调试信息改为否,即可解决。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值