CEF
QCefView编译
学习QT加载网页时了解到CEF与QCefView, QCefView是一个与Chromium Embedded Framework集成的Qt第三方开源库,LGPL许可,可以在项目中免费使用,功能类似CEF、QWebEngineView,提供C++和web交互的能力。
- 官方网址:http://tishion.github.io/QCefView
- Github地址:https://github.com/CefView/QCefView
- CEF下载地址:https://cef-builds.spotifycdn.com/index.html#linux64:113.3.1
QCefView需要下载自己编译,CEF有编译好的但是网上说编好的有问题会导致某些网页效果显示不出来?然后因为QCefView编译就需要CEF源码,我就没有再去下载CEF编好的测试了解。
首先下载 QCefView 源码,
git clone --recursive https://github.com/CefView/QCefView.git
因为 QCefView 里面用到了 CefViewCore ,所以需要把子模块一起下载;
也可以不加 --recursive ,然后再去下载 CefViewCore ,把它放到 QCefView\CefViewCore 这个文件夹就行;
然后 CefViewCore 代码有了之后,去找到它的 CefConfig.cmake, 注意是 CefViewCore\CefConfig.cmake,不是 QCefView 的;
打开之后内容大概是:
这里有个大坑各位一定要注意!!!
QCefView可以生成任何版本编译器的工程文件,但是它指定的CEF版本对编译器是有要求的,比如我截图上的113版本,这个版本要求VS2022才能编译!!!!
使用CMAKE生成VS2019工程文件可以正常生成,但是编不出来DLL!!!
一定要根据自己的系统和编译器选择合适的版本啊啊啊啊!!!
查看各版本的网址是这里: https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md
这个网址上的版本似乎也有点不准,比如图上的111版本,写了支持win10+vs2019,但是我用这个版本的CEF在VS2019里编译还是会失败,提示缺少"FILE_INFO_BY_HANDLE_CLASS",没办法我又后退了几个版本,最后我编译成功的版本是102.0.10,我的操作系统版本是win10专业版19044.1826,我得VS2019版本是16.11.19
在他的 CMAKE 里会下载 CEF 的源码,这里就指定了 CEF 对应的版本号,然后去上面的 CEF下载地址搜索对应的版本下载下来;
下载后放到 QCefView\CefViewCore\dep ;
接下来去 QCefView 中找到 QtConfig.cmake,打开之后里面找到有一条
set(QT_SDK_DIR
# Change this value to the Qt SDK path of your build environment
"$ENV{QTDIR}"
)
在这里可以指定你的 QT 环境路径,如果之前设过 QTDIR 到环境变量就不用管了;没设过的话可以把 QT安装环境对应的编译器的路径放到这里,也可以设到系统环境变量取名为 QTDIR 。比如我要用VS2019 编译,那么我设的路径就是
最后在 QCefView 里建一个文件夹,比如build_vs2019, 到时候把 CMake 产生的vs解决方案输出到这里;
打开 CMake GUI , 打开 QCefView, 然后设置刚刚建的输出文件夹,依次执行 Configure 和 Generate ,如果没问题的话就会得到:
这样就是成功了,会在刚刚的输出文件夹中生成sln文件,直接打开就有了:
然后按自己需要的属性编译即可。
最后生成的库文件在建立的输出文件夹的out文件夹中:
头文件在 include 中:
Cef 编译
刚刚编译 QCefView 得时候已经下载过 CEF 的源码了,直接解压,然后建一个build文件夹,然后用CMake GUI 打开,选择 vs2019 生成即可;
需要注意的是 用VS2019打开工程编译时,可能出现错误:
根源就在于那个 か 日文符号,改成 demo ,再重编就正常了;