vs2017 编译最新chromium

摘要:
Go和git需要单独设置,稍后将对此进行描述。Vs2017,我使用社区版本,即社区版本。直接忍者输出/默认。如果未指定chrome,将编译更多文件。is_officel_Build=true:表示使用官方Chrome编译优化建议。enable_Nacl=false:表示Nacl支持已禁用。这是一个Chrome插件,由于安全性和稳定性问题,很少使用。

1、准备

ssr,模式为系统全局,这样可以让python走代理。go和git的需要单独设置,后面说。

vs 2017 ,我使用的是community版本,即社区版。其他版本亦可。

win10 sdk, https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive, 我下的Windows 10 SDK 版本 1809 iso

depot tools, https://storage.googleapis.com/chrome-infra/depot_tools.zip

2、配置

打开ssr的本机代理

vs2017 编译最新chromium第1张

解压depot tools 并设置环境变量PATH

vs2017 编译最新chromium第2张

为避免depot tools更新失败,直接在环境变量里设置DEPOT_TOOLS_UPDATE0,并设置DEPOT_TOOLS_WIN_TOOLCHAIN0

为go设置代理也是写环境变量

HTTP_PROXY http://127.0.0.1:1080 

HTTPS_PROXY http://127.0.0.1:1080

最后是这样

vs2017 编译最新chromium第3张

 GYP的几个变量不知道是否有用,你可以删除试试

3、下载代码

新建一个chromium目录,开cmd, cd chromium,

设置git代理

git config --global http.proxy http://127.0.0.1:1080

git config --global https.proxy http://127.0.0.1:1080

下载源码 fetch --nohooks --no-history chromium, --no-history不下载变更历史,因此下载量较小,--nohooks加不加不所谓吧 反正最后都要执行hook

同步代码 gclient sync

下载有两个阶段,一是源码,一是引用的三方库的代码。

如果源码没下完断了建议删了重新fetch,否则sync会重新下载带有历史变更记录的代码,非常大,如果三方引用断了,gclient sync 会仅同步三方引用的。

4、编译配置

cd src

执行gn gen out/Default --ide=vs2017生成vs解决方案,即使使用vs,项目的编译工具仍然是ninja。

5、开始编译

使用vs打开 out/Default/all.sln 或者 ninja -C out/Default chrome 开始编译。编译需要很久,半天到一天吧。

直接ninja -C out/Default,不指定chrome的话,编译的文件更多。

6、编译参数

查看编译的参数 gn args out/Default --list >> gnargs.txt,然在src/gnargs.txt查看。如果不输出到文件,cmd界面显示不完整。

配置编译的参数 gn args out/Default,将打开一个txt,将上面能见的你又需要自定义的参数写到里面即可。

常用的参数

下面说明一些常见的参数:

target_cpu="x86":指明生成的针对X86架构的CPU。

is_debug=false:指明生成的是Release版本可执行程序。

is_official_build=true:指明使用Chrome官方的编译优化建议。

proprietary_codecs:指明支持H264编码,编译时,自动H264相关组件,打包PE文件中。

enable_nacl=false:指明关闭支持NACL,这是一种Chrome插件,因为安全性,稳定性存在问题,已经很少使用了。

remove_webcore_debug_symbols=true:指明删除内核层支持调试的符号文件,这样,有助于减少文件体积,提高运行速度。

更多关于gn

https://www.chromium.org/developers/gn-build-configuration

免责声明:文章转载自《vs2017 编译最新chromium》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用C++写android程序(包含界面+发短信)C#基础精华07(委托事件,委托的使用,匿名方法)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows下QtCreator使用CMake编译GUI程序

一、前言 为什么要用 CMake 来构建 Qt 的项目呢?Qt 不是有 qmake 吗?这样,岂不是多此一举?其实,应用 CMake 来构建项目还是非常有必要的,特别是当你的项目涉及到很多第三方库的时候,CMake 的优势非常突出。 Qt5.15.2 在之前选择安装模块的时候,自动帮我们勾选了 CMake_64 模块,你也可以另外选择勾选 CMake_32...

Makefile简介

一、为什么要写Makefile         首先要确定我们的目标,Makefile是用来干嘛的?         曾经很长时间我都是在从事Windows环境下的开发,所以根本不知道Makefile是个什么东西。因为早已经习惯了使用VS、Eclipse等等优秀的IDE做开发,只要点一个按钮,程序就可以运行啦。但是进入公司以后,从事的是Unix环境下的开发...

Nginx中文手冊

下载 : Nginx 中文手冊Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调优) 目 录 一、 Nginx 基础知识 二、 Nginx 安装及调试 三、 Nginx Rewrite 四、 Nginx Redirect 五、 Nginx...

教你阅读 Cpython 的源码(一)

目录 第一部分-介绍 Cpython 源代码中有什么?如何编译 Cpython 代码编译器能做什么?为什么 Cpython 是用 C 语言而是 Python 编写的?Python 语言的规范Cpython 中的内存管理机制结论 第二部分-Python 解释器进程 建立运行时配置读取文件/输入词法解析和句法解析抽象语法树结论 第三部分- Cpython 的编...

ubuntu 14.04 源码编译mysql-5.7.17

环境为 Ubuntu 12.04 64 位的桌面版 编译的mysql 版本为 5.7.18 首先需要安装一下依赖包 sudo apt-get install libncurses5-dev cmake chkconfig 创建用户组和用户 mysql groupadd mysql useradd -r -g mysql -s /bin/bash mysq...

全方位打造 Eclipse 自定义开发环境

前言 Eclipse 作为一款开源的跨平台的集成开发环境,本身就体现出了开源的强大优势和跨平台的可移植性。不仅有众多的开发人员为它开发了不计其数的插件,而且以它为模板进行二次开发的商业IDE也不在少数,比如 Myclipse,Wolfram Mathematica 的 WorkBench  等。同时,它也提供了几乎对所有语言的开发支持,从主流的 Java,...