window下编译jcef

自行编译jcef过程中遇到了一些问题,现在记录如下。

参考的主要文章是jcef的官方介绍:

https://bitbucket.org/chromiumembedded/java-cef/wiki/BranchesAndBuilding

需要准备好以下环境:

1、python 2.6

2、git

3、visual studio 2015

4、cmake 2.8以上

5、java 1.7以上

主要流程:

1、git clone源码

# The JCEF source code will exist at `/path/to/java-cef/src`
cd /path/to/java-cef
git clone https://bitbucket.org/chromiumembedded/java-cef.git src

注意,/path/to/指的是你的制定目录,不要有中文

2、执行cmake生成vs的sln项目文件

cd /path/to/java-cef/src

mkdir jcef_build && cd jcef_build

cmake -G "Visual Studio 14 Win64" ..
"Visual Studio 14 Win64"这个是CMAKE需要执行的生成器参数,如果不对,自己根据提示更改
比如改成 Visual Studio 2015,之类。

注意,cmake执行过程中会从google storage下载clang-format,这玩意儿其实是不需要的。
解决方式有两个:
1、挂VPN
2、打开src下的CMakeLists.txt文件,找到以下代码,像我一样,用#注释掉
#message(STATUS "Downloading clang-format from Google Storage...")
#execute_process(
#  COMMAND "${PYTHON_EXECUTABLE}"
#          "tools/buildtools/download_from_google_storage.py"
#          "--no_resume"
#          "--platform=${GS_PLATFORM}"
#          "--no_auth"
#          "--bucket" "chromium-clang-format"
#          "-s" "tools/buildtools/${GS_HASHPATH}"
#  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
#  RESULT_VARIABLE EXECUTE_RV
#  )
#if(NOT EXECUTE_RV STREQUAL "0")
#  message(FATAL_ERROR "Execution failed with unexpected result: ${EXECUTE_RV}")
#endif()
3、用VS打开生成的jcef.sln文件
选择build -> Configuration Manager,把“active solution configuration”改成"Release
然后选择编译解决方案

需要注意的问题:
1、 编译报错,warning LNK4272: 库计算机类型“x64”与目标计算机类型“X86”冲突,64位操作系统打算编译x64的jcef时,目标计算机指定了x86。
这个问题目测是jcef部分版本的bug,未来应该会修复
右键jcef项目
属性->链接器->高级,修改目标计算机为x64

属性->链接器->所有选项,修改服下选项为x64

 右键libcef_dll_wrapper项目

属性->c/c++->所有选项->附加包含目录 改成windows64,需要注意,必须有cef64位包

原文地址:https://www.cnblogs.com/anrainie/p/9661950.html