关于建立CEF的“libcef_dll_wrapper”VS2017版本工程

关于建立CEF的“libcef_dll_wrapper”VS2017版本工程,总是遇到libcef_dll_wrapper工程创建、编译和运行崩溃的问题,通过对一个CEF编译和Demo的补充,我们可以创建自己内嵌Chrome的VS2017工程。
一、环境准备
1.Chrome CEF文件下载
由于测试用例的原因,我下载了:3.2704.1414版本,
http://opensource.spotify.com/cefbuilds/index.html
选择“Standard Distribution”,下载后解压到你本地文件目录中。

2.CMake必不可少
为了生成C++接口和对应库文件,需要对CEF中的“libcef_dll_wrapper”重新编译。下载最CMake程序,https://cmake.org/download/
关于建立CEF的“libcef_dll_wrapper”VS2017版本工程_第1张图片
下载哪个版本,选择最新的:Windows win32-x86 Installer: Installer tool has changed. Uninstall CMake 3.4 or lower first!
下载完毕即可开始安装,选项中最好指向所有用户都可以使用。其实VS2017本身也带了一个CMake,带来的编译问题还是太耗时间去解决,还是追求短平快吧,反正都是解决问题。
下载一个Demo程序,这是其它作者的,要成人之美,可以点击他的链接:
https://download.csdn.net/download/alterli/11045496
这里面会遇到一个问题就是,作者并没给有把Debug版本给出来,否则就省大力气了。为了革命的继续,还是自己要创建和编译VS2017的libcef_dll_wrapper
二、生成C++链接库文件libcef_dll_wrapper
还是习惯了窗口操作,使用CMake GUI,一Configure就多次出现各种问题,不得其解,不胜其烦。直接使用命令行吧:cmake -G “Visual Studio 15”
关于建立CEF的“libcef_dll_wrapper”VS2017版本工程_第2张图片
尝试了几次,照样出现错误,中途差点放弃,去寻找其它方法。看看这到底是什么东东:
“No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 3.17)

should be added at the top of the file.”。最后还是决定按提示修改,在CmakeLists.txt前面行直接加入:cmake_minimum_required(VERSION 3.17)
注意笔者用的CMake版本是3.17,这个要根据错误提示走,如果你的提示不是这个文字,就要直接copy这段。
继续CMake,还是出现下面问题:
关于建立CEF的“libcef_dll_wrapper”VS2017版本工程_第3张图片
继续跟着提示走,既然不认识这个命令,加个“#”注释掉它,照样打开CmakeLists.txt,在结尾找到SET_LIBRARY_TARGET_PROPERTIES,改为:#SET_LIBRARY_TARGET_PROPERTIES
这样终于可以生成VS2017工程了。
三、编译过程中遇到的问题
编译过程中遇到的问题,参考上面另外一位作者下载包的文档就好。

四、Demo的编译问题
这是下载了另外一位网友的测试程序,编译时会遇到问题。调整一下libcef_dll_wrapper项目属性,把运行库的“MDd”改为“MTd”,其中Release版本改为“Mt”,缺少“libcef.lib”,则从“\cef_binary_3.2704.1414.g185cd6c_windows32\Debug”目录下拷贝过来
关于建立CEF的“libcef_dll_wrapper”VS2017版本工程_第4张图片
五、Debug执行问题
到目前为止,编译应该都可以通过,exe也生成了。发现Debug中的exe执行不起来,即使把该拷贝的运行库文件都拷贝过来了。
关于建立CEF的“libcef_dll_wrapper”VS2017版本工程_第5张图片
调试发现死在:“CefInitialize(mainArgs, settings, cefApp, NULL);”中了,这也是很多人说的CefInitialize崩溃;Release版本则没有同样问题。百思不得其解其解,按照网友思路应该是资源问题导致的初始化崩溃,但是我并没有编译过CefSimple工程,哪里来的资源文件呢?
管它三七二十一,看到一个Resource文件夹:
关于建立CEF的“libcef_dll_wrapper”VS2017版本工程_第6张图片
把里面文件拷贝到demo的可执行目录下,在运行demo,一切ok。
关于建立CEF的“libcef_dll_wrapper”VS2017版本工程_第7张图片
到这一步以后,你可以模仿demo写自己的程序了。
小结:CEF嵌入VS2017说难不难,说不难有时候遇到问题对于新手还是一筹莫展,只是事在人为,不要因为遇到小的困难而忽略细节,转身去找另外一个自己并不了解的捷径,往往浪费大量精力,兵家大忌。
补丁包以及CEF中libcef_dll_wrapper的VS2017工程下载地址:
https://download.csdn.net/download/photosir/12321696

你可能感兴趣的:(关于建立CEF的“libcef_dll_wrapper”VS2017版本工程)