火狐源码windows构建 2020-04-29最新版

在Windows上构建Firefox

最近一直在研究火狐浏览器内核源码,发现最新windows构建方式跟百度搜索到的老的方式有很大不同,搜索到官方文档。
官方链接
在Windows上构建Firefox
感谢您帮助我们在世界上最受欢迎的操作系统上构建世界上最好的浏览器。本文档将帮助您进行设置,以在本地计算机上的自己版本的Firefox上进行构建和破解。

设置并不困难,但可能要花一些时间-我们需要下载很多字节!即使是快速连接,这也可能需要花费10到15分钟的时间,而这需要花费一两个小时的时间。

详细信息在此页面的后面,但是此快速入门指南可以使您入门和运行:

做好准备
要在Windows上构建Firefox,您需要64位版本的Windows 7或更高版本以及硬盘驱动器上大约40 GB的可用空间。通过右键单击“开始”菜单中的“计算机”,单击“属性”,然后单击“系统”,可以确保Windows 7在Windows 7上是64位版本。在Windows 8.1和Windows 10上,右键单击“ Windows”菜单按钮,然后选择“系统”将显示相同的信息。您也可以在任何Windows版本的键盘上同时按下“ Windows”和“暂停暂停”按钮。

接下来,我们要打下坚实的基础:确保您了解Windows Update的最新信息,然后我们会继续前进。

Visual Studio 2019
从错误1483835开始,本地Windows构建默认使用clang-cl作为编译器。Visual Studio对于构建工具,标头和SDK仍然是必需的。
自动化版本仍使用Visual Studio 2017,因此在我们升级之前可能会有一些差异。错误1581930跟踪2019年构建的各种问题。请在此处提交问题,如果遇到构建失败,请在此期间降级。

下载并安装 Visual Studio 2019 的社区版本。如果您拥有专业版和企业版,则也支持它们。

安装时,必须检查以下工作负载:

“使用C ++进行桌面开发”(在Windows组下)
“使用C ++开发游戏”(在“移动与游戏”组下)
此外,转到“单个组件”选项卡,并确保在“ SDK,库和框架”组下选择了以下组件:

“ Windows 10 SDK”(至少版本10.0.17134.0)
“用于v142构建工具(x86和x64)的C ++ ATL”(如果要为ARM64构建,也请选择ARM64)
确保在安装后运行一次Visual Studio,以便它完成所有首次运行的任务并将安装与您的帐户相关联。

必备工具
MozillaBuild
最后,从Mozilla 下载MozillaBuild软件包。接受默认设置,尤其是默认安装目录:c:\mozilla-build\。在某些版本的Windows上,错误对话框将为您提供“使用正确的设置重新安装”的选项-您应该同意并继续。

完成此操作后,c:\mozilla-build\start-shell.bat在桌面上创建的快捷方式将使您的生活更轻松。

获取来源
这是最后一步。双击启动shell.bat中c:\mozilla-build(或您在上面创建的快捷方式),将打开一个终端窗口。

首先从关闭目录创建一个“ mozilla-source”目录,C:\然后将其cd入目录

cd c:/

mkdir mozilla-source

cd mozilla-source
接下来,您可以使用Mercurial获取Firefox源代码。有一个Wiki页面介绍如何使用Mercurial获取源代码,但是,总而言之,如果您的网络连接足够好,可以不中断地下载1 GB以上的数据,并且您想要主要的开发资料库,则可以使用:

hg clone https://hg.mozilla.org/mozilla-central
在等待该过程完成时,请查看我们的Mercurial文档。它说明了我们如何在Mozilla中使用版本控制来管理代码并更改对源代码树的更改。

构建Firefox!
现在,我们将它们捆绑在一起。在终端窗口中,cd像以前一样转到源目录,然后键入

cd mozilla-central

./mach bootstrap

./mach build
对于./mach bootstrap本文档中未涵盖的任何依赖项,此步骤非常适用。请注意,bootstrap 仅适用于源代码的Mercuial存储库,不适用于源代码tar球和github镜像。如果您使用的是Firefox或Android版Firefox前端,或者未做任何更改就构建Firefox,请在中的第一个问题中选择构件构建./mach bootstrap。神器构建将更快完成!Artifact构建不适用于使用C ++代码的人员。

你在路上 如果需要一段时间,不要气be;即使在最快的现代机器上也要花费一些时间,而在较旧的硬件上则要花费两个小时或更长时间。Firefox很大,因为Web很大。

建立联系
最后一步可能需要一些时间。完成后,您应该花一点时间注册一个Bugzilla帐户!

Bugzilla.mozilla.org是Mozilla的问题跟踪器。要评论错误或提交补丁,您需要一个Bugzilla帐户;您可以使用GitHub帐户(如果有),也可以直接注册一个Bugzilla帐户。

与Bugzilla一样,Mozilla的许多内部通信都是通过Internet中继聊天(IRC)进行的。您可以在此处了解如何使用IRC连接到Mozilla。如果您只是刚刚起步,或者对设置有疑问,可以加入“ #introduction频道”,我们的一些社区成员在这里闲逛以尝试帮助新的贡献者滚动。

你准备好了
当mach构建完成时,您将根据硬盘驱动器上的源代码构建自己的Firefox版本,并可以运行。您可以使用

./mach run
现在,您拥有自己的Firefox内置版本。

如果您在此处看到错误,请在本文档的“疑难解答”部分中进一步查找-一些防病毒软件隔离了我们的某些测试,因此您需要为“ mozilla-source”和“ mozilla-build”目录创建例外。不要关闭防病毒软件!只需添加例外。

现在开始有趣
您已经有了代码,并且已经编译了Firefox。随便用它./mach run,您就可以开始黑客攻击了。下一步由您决定:通过IRC的“ #introduction channel ” 加入我们,在Twitter上关注StartMozilla并找到一个可继续工作的错误。

感谢您加入我们,并帮助我们使Firefox和开放式网络更适合所有人。

详细信息和故障排除
硬件和软件要求
Firefox的构建过程需要大量I / O和CPU,并且即使在现代硬件上构建也可能需要很长时间。Mozilla开发的最低和建议的硬件要求是:

至少4 GB的RAM。建议使用8 GB或更大的容量,并且总是更好。
35 GB可用磁盘空间。该磁盘空间可容纳Visual Studio 2019社区版,必需的SDK,MozillaBuild程序包,Mercurial源存储库以及足够的可用磁盘空间进行编译。建议使用固态硬盘,因为Firefox的构建过程需要大量I / O。
Windows 7(Service Pack 1)或更高版本的64位版本。您仍然可以在64位Windows安装上构建32位Firefox。
总览
Mozilla构建过程需要大多数Windows系统上未预安装的许多工具。除了Visual Studio外,还安装MozillaBuild-一个软件包,其中包括bash,GNU make,autoconf,Mercurial等所需的版本。

Firefox 61+要求安装Visual Studio 2017 Update 6或更高版本。

使用Visual Studio 2015构建Firefox 48至60。VisualStudio 2017也可用于构建Firefox 58或更高版本。

Firefox 37到47使用Visual Studio 2013(VC12)以及可能的Visual Studio 2015构建(尽管Visual Studio 2015可能不会构建每个修订版)。

Firefox的早期版本与Visual Studio的早期版本一起构建。

安装构建先决条件
否则,请完成每个步骤,否则可能无法成功构建。以下是有关这些软件要求的说明。

通过Windows Update确保您的系统是最新的。
安装Visual Studio Community 2019(免费)。或者,您也可以使用Visual Studio的付费版本。如上文“ Visual Studio 2019”部分所述,构建Firefox可能需要一些其他组件。不支持Visual Studio的早期版本。Firefox代码库依赖早期版本不支持的C ++功能。
可选地,除了VS2019之外,您可能还想安装Visual C ++ 2008 Express(免费)来编译构建系统中使用的某些Python扩展,因为默认情况下使用该编译器构建Windows的Python2.7.x。注意,如果要使用“马赫资源使用情况”,“马赫医生”,“马赫安卓模拟器”或在本地运行talos测试,则应安装它以构建psutil。
下载并安装MozillaBuild软件包,其中包含其他构建工具。如果您安装了Cygwin,请阅读“提示”部分中的注释。如果看到Windows错误对话框,提示您可以使用“正确的设置”重新安装,请在MozillaBuild的安装程序退出后选择该选项,然后一切正常。有关MozillaBuild和指向较新版本的链接的更多信息,请访问https://wiki.mozilla.org/MozillaBuild。
故障排除
在某些情况下,可能会出现以下问题:

一些防病毒和系统保护软件可能会大大减慢或破坏构建过程

Windows Defender和某些扫描防病毒产品对构建时间有重大影响。例如,如果mozilla-central成功克隆但./mach build未能报告丢失的文件,则很可能遇到此问题。我们针对著名的安全漏洞的回归测试可以包括一些防病毒软件将其识别为威胁的代码示例,这些代码示例将隔离或破坏所涉及的文件。要解决此问题,您将需要在Windows Defender或防病毒软件中将源目录和对象目录(mozilla-source和mozilla-build目录)列入白名单,如果缺少文件,请使用“ hg update -C" 命令还原源代码树。完成此操作后,下一个./mach build应完成成功。
以不同于系统的其他语言安装Visual Studio可能会导致问题

例如,当系统为英语时使用法语的Visual Studio会导致生成大量包含错误并结束链接错误。
注意:如果安装工具文件夹的路径包含空格或其他破字符(例如加号,引号或元字符),则Mozilla将不会生成。Visual Studio工具和SDK是一个例外-它们可能安装在包含空格的目录中。强烈建议您接受所有安装位置的默认设置。

MozillaBuild
MozillaBuild软件包包含构建Mozilla所必需的其他软件先决条件,包括MSYS构建环境,Mercurial,autoconf-2.13,CVS,Python,YASM,NSIS和UPX,以及可选但有用的工具,例如wget和emacs。

下载当前的MozillaBuild软件包。

默认情况下,软件包安装到c:\mozilla-build,建议使用默认路径。不要使用包含空格的路径。安装程序不会修改Windows注册表。请注意,某些二进制文件可能需要Visual C ++可再发行组件包 才能运行。

MozillaBuild命令提示符期望设置: 请注意,MozillaBuild提供的“类UNIX”环境仅对构建和提交Mozilla源代码真正有用。您在现代Linux发行版中期望的大多数命令行工具都不存在,并且提供的那些工具可能已经使用了十年左右(尤其是MSYS提供的工具)。特别是那些旧的工具可能会引起问题,因为它们的行为通常不符合预期,有故障或不支持多年来被认为是理所当然的命令行参数。例如,使用以下命令复制源树cp -rf src1 src2由于cp的版本太旧而无法正常工作(某些文件显示“ cp:将不会创建硬链接”错误)。简而言之,MozillaBuild支持开发人员与Mozilla代码进行必要的交互,但是除此之外,如果它以各种令人兴奋和出乎意料的方式使您失望,也不要感到惊讶。

打开MozillaBuild命令提示符
安装必备组件后,start-shell.bat使用Windows命令提示符在安装MozillaBuild的目录中启动 批处理文件(c:\mozilla-build默认情况下)。这将启动正确配置为构建Firefox的MSYS / BASH命令提示符。所有其他命令应在此命令提示符窗口中执行。(请注意,这与您使用Windows CMD.EXE shell所获得的不一样。)

注意:这与Windows CMD.EXE shell所提供的不一样。

为源创建目录
注意:如果Firefox源代码位于路径中带有空格的目录(例如“文档和设置”)下,则将无法生成Firefox源代码。您可以选择其他任何位置,例如新目录c:/ mozilla-source或c:/ thunderbird-src。生成命令提示符也可以容忍“ c:\”和“ / c /”,但是前者在Windows命令提示符中引起混淆,而后者被某些工具(至少是MOZ_OBJDIR)误解了。“ C:/”语法有助于引起注意,因为MozillaBuild命令提示符提供了已配置的环境和工具,因此从这里开始一直是假定的。
创建一个新的浅目录(例如专门用于代码的“ c:/ mozilla-source”或“ c:/ thunderbird-src”)是一个明智的主意:

cd c:/; mkdir mozilla-source; cd mozilla-source
如果您遇到问题,请记住以下诊断提示。现在您已经准备好获取Firefox源并进行构建。

命令提示提示和警告
要粘贴到该窗口中,必须右键单击该窗口的标题栏,将光标移至“编辑”菜单,然后单击“粘贴”。您还可以在“属性”菜单中设置“快速编辑模式”,然后右键单击该窗口以粘贴您的选择。
如果您安装了Cygwin,请确保MozillaBuild目录位于搜索路径中的任何Cygwin目录之前start-shell-msvc2015.bat(通过增强) (用于echo KaTeX parse error: Undefined control sequence: \) at position 102: …是Windows风格的反斜杠(\̲)̲。所以,如果你想改变的目录c:…VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT在mozconfig中进行设置,以将Microsoft CRT DLL与应用程序打包在一起。请注意,确切的.CRT文件可能取决于您的Visual Studio版本。
Microsoft反恶意软件服务可能会干扰编译,通常表现为与conftest.exe构建期间相关的错误。要解决此问题,请至少在对象目录中添加排除设置。
当intrin.h和windows.h一起包含时,会遇到诸如“不允许重载函数’_interlockedbittestandset’的第二C链接”之类的错误。使用#define重新定义函数名称的一个实例。
-jN在Windows上,并行构建()不适用于GNU品牌。您应该使用mozmakeMozillaBuild当前版本附带的命令。使用该mach命令进行构建将始终使用最佳的make命令。
如果遇到诸如“错误:找不到makecab.exe”之类的构建失败,请尝试应用来自错误1383578的补丁,即:更改SET PATH="%PATH%;!LLVMDIR!\bin" 为SET “PATH=%PATH%;!LLVMDIR!\bin”。
如果您使用遇到构建失败LINK: fatal error LNK1181: cannot open input file …\security\nss3.lib,则可能与您mozilla-central位于Users文件夹中的克隆副本有关(可能是加密的)。尝试将其移到“用户”文件夹之外。该文档建议C:\mozilla-source\mozilla-central应该工作。
如果遇到失败,则ERROR: GetShortPathName returned a long path name.需要为具有空格的路径创建一个8dot3name短名称。例如:fsutil file setshortname“ C:\ Program Files(x86)” PROGRA〜2。如果收到“访问被拒绝”,请尝试将计算机重新启动到安全模式,然后重试。
翻译的中文 将就看吧

你可能感兴趣的:(windows)