编译Qt vs版本的Cef库,利用二进制包进行编译

CEF二进制下载链接:
Chromium Embedded Framework (CEF) Automated Builds

目前是用vs2017编译x64的包给Qt用(windows上用mingw需要自己改源码,github上有个成功的例子)
编译过程:
下载页面:http://opensource.spotify.com/cefbuilds/index.html#windows64_builds
在这里插入图片描述
下载链接:
Standard DistributionStandard cef_binary_75.0.1+gb5e74dd+chromium-75.0.3770.80_windows64.tar.bz

编译过程:
1.解压,建build文件夹
编译Qt vs版本的Cef库,利用二进制包进行编译_第1张图片
2.CMake编译出vs工程
编译Qt vs版本的Cef库,利用二进制包进行编译_第2张图片
其中source code路径就选择你加压的那个目录,build the binaries目录选择刚才新建的build目录。
选择vs2017 ,x64,我们这里是编译64位版本的cef
点击Finish

编译Qt vs版本的Cef库,利用二进制包进行编译_第3张图片
(中间有报错信息不用慌,最终可以成功编译的)

3./MT改成/MD,因为Qt的动态库版本,所以这样要对应上(如果是你自己编译的静态库版本的Qt则另当别论)
编译Qt vs版本的Cef库,利用二进制包进行编译_第4张图片
会看到:
编译Qt vs版本的Cef库,利用二进制包进行编译_第5张图片
4.在vs工程中编译

先做一件小小的修改:
在 文件夹cef_binary_80.1.15+g7b802c9+chromium-80.0.3987.163_windows64\tests\cefsimple目录中:simple_app.cc第89行
编译Qt vs版本的Cef库,利用二进制包进行编译_第6张图片
下载的源码中这里是http://www.google.com,导致打开cefsimple.exe时界面没有任何内容,改成如图所示的内容,则会很快出现百度的页面。
先编译出libcef_dll_wrapper,再编译cefsimple和cefclient
编译Qt vs版本的Cef库,利用二进制包进行编译_第7张图片
看到libcef_dll_wrapper.lib编译好了,就可以编译自带的例子了。
在这里插入图片描述
5.运行自带的demo
编译Qt vs版本的Cef库,利用二进制包进行编译_第8张图片
这些demo也编译和运行成功了,那么可以把这个库和相应的dll用到Qt vs版本的工程中去了

另外一些坑:

经过测试:

06/12/2019 - CEF 75.0.3+g699a922+chromium-75.0.3770.80 / Chromium 75.0.3770.80

07/24/2020 - CEF 84.3.7+g97011bc+chromium-84.0.4147.89 / Chromium 84.0.4147.89

这些库,在编译的时候,/MT不会报错,在编译cefsimple和 cefclient的时候,都会报(即使在CMake中将/MT改成/MD也一样会报错,我在Debug版中/MDd,release版本中全是/MD也一样报错),最后发现换其他版本的cef二进制库可以解决这个问题。

error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”

参考:
Chromium Embedded Framework (CEF) Automated Builds
Cef 的wiki参考网站
CEF避坑指南(一)——编译并自制浏览器

你可能感兴趣的:(Qt,Cef)