自行编译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位包