第一次接触 cef, 遇到不少的问题
之前在网上看了一些关于 Chromium Embedded Framework (CEF) 的相关资料,今天终于鼓起勇气在电脑上安装了 vs 2017,然后想结合 cef 写个简单的浏览器。
cef 我是从这里下载:
Chromium Embedded Framework (CEF) Automated Builds
https://cef-builds.spotifycdn.com/index.html#windows32
目前最新稳定版本:04/01/2022 - 99.2.15+g71e9523+chromium-99.0.4844.84 / Chromium 99.0.4844.84
下载完 cef, 为了编译其中的 libcef_dll_wrapper.lib 按网上的资料提示,又下载了 cmake (cmake-3.23.0),使用 cmake 生成解决方案:https://www.shuzhiduo.com/A/pRdBqXw15n/
接着用 vs 2017 打开 cmake 生成的 cef.sln,开始编译 libcef_dll_wrapper, 可是编译没有通过,提示错误:
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2440 “初始化”: 无法从“R (__cdecl *)(base::internal::BindStateBase *,conditional<_Test,const std::string&,const std::string&>::type)”转换为“PolymorphicInvoke” libcef_dll_wrapper D:\soft\c\lib\cef_binary_99.2.15_windows32\include\base\internal\cef_bind_internal.h 1250
一脸懵逼
没学过c++,这个难倒我了。
上网查资料,搜索关键词 cef C2440,找到一个文章说的大概意思是,不支持 vs 2010,但我现在用的是 vs 2017,也是同样的问题。
这就说明,cef 99.2.15 不支持 vs 2017,可能要用 vs 2019 或 vs 2022 才能编译。
这时我想,先下载个旧一点的版本试试,接着,我下载了 cef 91, 测试果然能编译成功。然后又开始了 96, 93, 92
经过测试发现,vs 2017 只能支持到 cef 92 这个版本。
看来,在未来一段时间里,只能凑合着使用 cef 92 了。
如果想用更高的版本 cef,估计要升级到 vs 2019 或 vs 2022