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位包