一、環境
1、Win10專業版
2、VS2015英文版(安裝時勾選14343版本 Windows10SDK)
3、控制面板->區域->管理->更改系統區域設置,選擇英語
4、準備好VPN,推薦https://myxgj.com
二、下載chrome源代碼
1、下載生成工程工具depot_tools
2、系統環境變量中添加
DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_MSVS_VERSION=2015
GYP_GENERATORS=msvs-ninja,ninja
3、cmd 命令行運行gclient
三、編譯
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
//設置default_sdk_path = 'C:\\Program Files (x86)\\Windows Kits\\10',使其默認用 Windows10SDK
//5、chromium\src\build\config\compiler\BUILD.gn中設置
// treat_warnings_as_errors = false
// 解決把警告視為錯誤的問題
//6、src\tools\gyp\pylib\gyp\MSVSVersion.py :237行 v140改為v140_xp,使其支持xp
7、ffmpeg中有個全局常變量(變量名已經忘記)找不到符號,可以刪除引用的頭文件,自己定義改變量(因為是常變量)
8、delay_load_hook_win.cc中
#include <DelayIMP.h>之前加#define DELAYIMP_INSECURE_WRITABLE_HOOKS(注意是"之前")
PfnDliHook __pfnDliNotifyHook2 = ChromeDelayLoadHook;
PfnDliHook __pfnDliFailureHook2 = ChromeDelayLoadHook;
變量前面加extern
解決這2個變量重新定義的編譯問題
9、cmd命令行依次輸入一下命令開始編譯:
$gn args out/Release
上面這個命令會打開一個文本文件,在文件在輸入
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 //簡化版
$ninja -C out/Release chrome
Debug版
$gn args out/Debug
上面這個命令會打開一個文本文件,在文件在輸入
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 //簡化版
$ninja -C out/Debug chrome
###########################資料##############################
1、官方文檔https://www.chromium.org/developers
2、關于VS調試chrome以及chrome代碼大致的架構:https://github.com/pengx17/pengx17.github.io/blob/master/_posts/2012-12-05-learning-chromium.md
調試:
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中標記的函數xp中沒有
//5、xp中如果打不開網頁或者找不到函數,直接刪除該函數的調用
---------------------
作者:lijun4727
來源:CSDN
原文:https://blog.csdn.net/lijun4727/article/details/78421294
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
|