windows下CEF3 搭建

首页 / C++ / 正文

获取中...

终于弄好了CEF3的搭建,三天了,踩到的坑mark一下

步骤如下:

第一步:下载

1.CEF3二进制包
下载地址: cef3下载
笔者使用的版本是 cef_binary_87.1.14

2.cmake cmake download

下载安装包的版本(Windows x64 Installer) 不然要搞环境变量,安装包在安装的时候选择自动环境变量

第二步:生成工程

运行CMake(CMake (cmake-gui)),分别设置好CEF3解压的路径和库的编译路径(无须事先创建,会提示自动生成),然后点击Configure按钮,如下:

lpgodwot.png

CEF的目录就是他的的主目录,生成目录可以自己定。但目录路径不能有中文

注意路径不要太长,cef下载下来的文件名比较长,解压后成路径就很长了。

点configure 选择vs版本以及x86还是x64 这个要根据你下的cef 的位数来决定

可以多点几次configure ,然后点Generate ,成功的话就是这样子了

lpgoebkv.png

这里USE_SANBOX 不要勾选

去刚刚生成的目录下打开cef.sln 工程文件,如果编译报错,在cef目录下的CmakeLists.txt 修改: 在第二行(有效命令的第二行)添加 cmake_policy(SET CMP0074 NEW)

编译 libcef_dll_wrapper 其他不需要编译

libcef_dll_wrapper 是对cef的封装文件,后续都需要用到他,编译完成后会得到lib文件


如果编译报错,说明你的vs版本跟cef的版本不一致,cef的高版本需要高版本的vs,所以你安装个低版本的试试,具体哪些cef的版本跟你的vs办版本是一致的 你自行百度

本人目前测试:cef_binary_85.3.12 跟vs2017 可以直接编译不会报错

然后新建一个窗口的空项目

然后在项目目录下 创建CEF3文件夹
lpgoflho.png

里面对应的文件 是以下来源:
bin->Debug来源于:

cef_binary_84.4.1+gfdc7504+chromium-84.0.4147.105_windows64\Debug

bin->Release来源于:

cef_binary_84.4.1+gfdc7504+chromium-84.0.4147.105_windows64\Release

include来源于:

cef_binary_84.4.1+gfdc7504+chromium-84.0.4147.105_windows64\include

lib->Debug来源于:

cef_binary_84.4.1+gfdc7504+chromium-84.0.4147.105_windows64\Debug里的lib后缀文件

还有刚刚编译的libcef_dll_wrapper.lib 也一起放进去

lib->Release来源于:

cef_binary_84.4.1+gfdc7504+chromium-84.0.4147.105_windows64\Release里的lib后缀文件

Resources来源于:

cef_binary_84.4.1+gfdc7504+chromium-84.0.4147.105_windows64\Resources

然后把 cef_binary_84.4.1+gfdc7504+chromium-84.0.4147.105_windows64\tests\cefsimple 下的头文件以及cpp文件都放到项目目录下

lpgofzdz.png

接下来配置工程并编译。

lpgog6a3.png

lpgog9b2.png

这里的设置要跟刚刚编译libcef_dll_wrapper 是一样的 不然无法使用这个静态库

lpgoggb9.png

然后编译,这是由于拷贝的源码文件,路径包启不对,分别去掉前面的tests/cefsimple,重试编译通过。

然后还要做2件事

1 把CEF3 目录下的 Resources 文件夹里的所有内容 都拷贝到 生成debug 目录下

2 在CEF3源码目录找到cefsimple.exe.manifest和compatibility.manifest,拷贝到工程目录下:

2023-11-27 mark:其实也不用这样,在CEF3源码目录找到compatibility.manifest,放到工程目录下,然后在属性,清单工具 - 输入和输出 - 附加清单文件:compatibility.manifest 编译也能跑起来~ 如果这样能跑 下面的就不用看了

还需要将cefsimple.exe.manifest修改为CEF.exe.manifest,即工程名.exe.manifest

2.添加生成后事件,输入代码:

lpgogoz2.png

代码如下:

setlocal

mt.exe -nologo -manifest "compatibility.manifest" "demo.exe.manifest" -outputresource:"x64/Debug/demo.exe";#1

if %errorlevel% neq 0 goto :cmEnd

:cmEnd

endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone

:cmErrorLevel

exit /b %1

:cmDone

if %errorlevel% neq 0 goto :VCEnd

3.重新编译。并运行demo.exe,展示如下:

lpgogvwl.png

他默认是谷歌,改成百度即可

至此,demo基本环境搭建完成。

C++
打赏
评论区
头像