一、環(huán)境
1、Win10專業(yè)版
2、VS2015英文版(安裝時(shí)勾選14343版本 Windows10SDK)
3、控制面板->區(qū)域->管理->更改系統(tǒng)區(qū)域設(shè)置,選擇英語
4、準(zhǔn)備好VPN,推薦https://myxgj.com
二、下載chrome源代碼
1、下載生成工程工具depot_tools
2、系統(tǒng)環(huán)境變量中添加
DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_MSVS_VERSION=2015
GYP_GENERATORS=msvs-ninja,ninja
3、cmd 命令行運(yùn)行g(shù)client
三、編譯
1、cmd命令行cd到下載文件夾中的src目錄
2、切換分支git checkout 55.0.2883.105(推薦用TortoiseGit中的Switch/CheckOut切換)
3、cmd命令行輸入"gclient sync --force"同步代碼
4、D:\chromium\src\build\vs_toolchain.py中找到
# If WINDOWSSDKDIR is not set, search the default SDK path and set it.
if not ' WINDOWSSDKDIR' in os.environ:
default_sdk_path = 'C:\\Program Files (x86)\\Windows Kits\\8.1'
if os.path.isdir(default_sdk_path):
os.environ[' WINDOWSSDKDIR'] = default_sdk_path
//設(shè)置default_sdk_path = 'C:\\Program Files (x86)\\Windows Kits\\10',使其默認(rèn)用 Windows10SDK
//5、chromium\src\build\config\compiler\BUILD.gn中設(shè)置
// treat_warnings_as_errors = false
// 解決把警告視為錯(cuò)誤的問題
//6、src\tools\gyp\pylib\gyp\MSVSVersion.py :237行 v140改為v140_xp,使其支持xp
7、ffmpeg中有個(gè)全局常變量(變量名已經(jīng)忘記)找不到符號(hào),可以刪除引用的頭文件,自己定義改變量(因?yàn)槭浅W兞?
8、delay_load_hook_win.cc中
#include <DelayIMP.h>之前加#define DELAYIMP_INSECURE_WRITABLE_HOOKS(注意是"之前")
PfnDliHook __pfnDliNotifyHook2 = ChromeDelayLoadHook;
PfnDliHook __pfnDliFailureHook2 = ChromeDelayLoadHook;
變量前面加extern
解決這2個(gè)變量重新定義的編譯問題
9、cmd命令行依次輸入一下命令開始編譯:
$gn args out/Release
上面這個(gè)命令會(huì)打開一個(gè)文本文件,在文件在輸入
is_component_build = false
is_debug = false
target_cpu = "x86"
symbol_level = 0
dcheck_always_on = false
is_official_build = true
treat_warnings_as_errors = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
$gn gen out/Release --ide=vs
$gn gen --ide=vs --filters=//chrome out\Release //簡(jiǎn)化版
$ninja -C out/Release chrome
Debug版
$gn args out/Debug
上面這個(gè)命令會(huì)打開一個(gè)文本文件,在文件在輸入
is_component_build = true
is_debug = false
target_cpu = "x86"
symbol_level = 2
dcheck_always_on = false
is_official_build = true
treat_warnings_as_errors = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
$gn gen out/Debug --ide=vs
$gn gen --ide=vs --filters=//chrome out\Debug //簡(jiǎn)化版
$ninja -C out/Debug chrome
###########################資料##############################
1、官方文檔https://www.chromium.org/developers
2、關(guān)于VS調(diào)試chrome以及chrome代碼大致的架構(gòu):https://github.com/pengx17/pengx17.github.io/blob/master/_posts/2012-12-05-learning-chromium.md
調(diào)試:
devenv /debugexe out\Debug\7654Browser.exe --renderer-startup-dialog --no-sandbox
3、本地化:http://blog.csdn.net/tfancy2012/article/details/51524293
4、chrome.user32.delay.imports中標(biāo)記的函數(shù)xp中沒有
//5、xp中如果打不開網(wǎng)頁或者找不到函數(shù),直接刪除該函數(shù)的調(diào)用
---------------------
作者:lijun4727
來源:CSDN
原文:https://blog.csdn.net/lijun4727/article/details/78421294
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
|