VS2017編譯libcef 2623_20181107完成

 

爲什麼使用VS2017編譯?

因爲VS2017更強大,編譯速度更快,C++支持性最好。

VS2013無法編譯libcef2623,C++新語法部分不支持,需要安裝sp4補丁。

方便與其他VS2017項目整合。VS2017編譯完的lib,測試VS2013,VS2015也能使用使用。

已經有編譯過Chrome,libcef的經驗和多年的編譯經驗判斷,VS2017是更好的選擇。

 

cef2623版本說明,官方最後一個支持xp的,源碼數在12000左右。(添加mp3,mp4編譯通過)

cef3202版本說明,官方最後一個支持VS2015U3的,源碼數在32000左右。(添加mp3,mp4編譯通過)

 

1、下載 automate-git.py

https://bitbucket.org/chromiumembedded/cef/raw/master/tools/automate/automate-git.py

2、下載源碼

python automate-git.py --download-dir=D:\chromium\source --branch=2623 --no-build --no-distrib --force-clean

運行後下載,開始自動下載cef,chromium,depot_tools

下載depot_tools到D:\chromium\source\depot_tools

下載cef到D:\chromium\source\cef

下載chromium到D:\chromium\source\chromium

全部下載完畢需要20G以上的控件,大部分時間在下載D:\cef2623\chromium\src\third_party

 

3、打開chromium\src\build\common.gypi,搜索10.0.10240.0替換爲 10.0.17134.0

4、編譯腳本

set CEF_USE_GN=0
set GN_DEFINES=is_official_build=true ffmpeg_branding=Chrome proprietary_codecs=true 
set GYP_DEFINES=buildtype=Official    
set GYP_MSVS_VERSION=2017
set CEF_ARCHIVE_FORMAT=tar.bz2
 
set GYP_GENERATORS=ninja,msvs-ninja
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*

 
set WIN_CUSTOM_TOOLCHAIN=1

set VS_ROOT=C:\Program Files (x86)\Microsoft Visual Studio\2017

set SDK_ROOT=C:\Program Files (x86)\Windows Kits\10

D:\cef2623\depot_tools\win_tools-2_7_6_bin\python\bin\python.exe D:\cef2623\automate-git.py --download-dir=D:\cef2623 --branch=2623 --no-update --no-debug-build --build-log-file --verbose-build --force-distrib --force-build

5、編譯生成的skia、pdfium

6、gperf.exe錯誤

gperf.exe加入到path

cd D:\cef2623\chromium\src\third_party\WebKit\Source\platform\

gperf.exe "--key-positions=*" "-D" "-s" "2" "ColorData.gperf" >ColorData.cpp

複製ColorData.cpp到D:\cef2623\chromium\src\out\Release\gen\blink\platform\ColorData.cpp

打開D:\cef2623\chromium\src\out\Release\obj\third_party\WebKit\Source\platform\make_platform_generated.ninja

修改爲

在我的CSDN資源有這個文件下載

 

7、libcmt 問題,這個問題發了好長時間才解決,特別說明下

VS2015,VS2017不支持腳本chromium\src\base\allocator\prep_libc.py

[15/42] ACTION libcmt: libcmt_1f6442be6c83cd3f76ccf7a8626eb14a
FAILED: gen/allocator/libcmt.lib
D:\cef2623\depot_tools\win_tools-2_7_6_bin\python\bin\python.exe gyp-win-tool ac
tion-wrapper environment.x86 libcmt_target_libcmt_1f6442be6c83cd3f76ccf7a8626eb1
4a..rsp ..\..\base\allocator
Traceback (most recent call last):
  File "prep_libc.py", line 87, in <module>
    sys.exit(main())
  File "prep_libc.py", line 62, in main
    shutil.copyfile(os.path.join(vs_install_dir, 'libcmt.lib'), output_lib)
  File "D:\cef2623\depot_tools\win_tools-2_7_6_bin\python\bin\lib\shutil.py", li
ne 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: 'C:\\Program Files (x86)\\Microsof
t Visual Studio\\2017\\VC\\lib\\libcmt.lib'

解決方法

將替換函數設置爲空

  cobjfiles = []
  cppobjfiles = []

8、編譯過程動畫

9、啓動cefclient,顯示 Page failed to load.

URL: https://www.google.com.hk/?gws_rd=cr,ssl
Error: UNKNOWN (-150)
X.509 Certificate Information:

原因:證書驗證錯誤

解決方法添加啓動參數 --ignore-certificate-errors

 

10、xp下測試

 

11、專業解決各類問題,有問題的可以在評論留QQ

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章