火狐源码windows构建 2020-04-29最新版
在Windows上構(gòu)建Firefox
最近一直在研究火狐瀏覽器內(nèi)核源碼,發(fā)現(xiàn)最新windows構(gòu)建方式跟百度搜索到的老的方式有很大不同,搜索到官方文檔。
官方鏈接
在Windows上構(gòu)建Firefox
感謝您幫助我們在世界上最受歡迎的操作系統(tǒng)上構(gòu)建世界上最好的瀏覽器。本文檔將幫助您進(jìn)行設(shè)置,以在本地計(jì)算機(jī)上的自己版本的Firefox上進(jìn)行構(gòu)建和破解。
設(shè)置并不困難,但可能要花一些時(shí)間-我們需要下載很多字節(jié)!即使是快速連接,這也可能需要花費(fèi)10到15分鐘的時(shí)間,而這需要花費(fèi)一兩個(gè)小時(shí)的時(shí)間。
詳細(xì)信息在此頁面的后面,但是此快速入門指南可以使您入門和運(yùn)行:
做好準(zhǔn)備
要在Windows上構(gòu)建Firefox,您需要64位版本的Windows 7或更高版本以及硬盤驅(qū)動(dòng)器上大約40 GB的可用空間。通過右鍵單擊“開始”菜單中的“計(jì)算機(jī)”,單擊“屬性”,然后單擊“系統(tǒng)”,可以確保Windows 7在Windows 7上是64位版本。在Windows 8.1和Windows 10上,右鍵單擊“ Windows”菜單按鈕,然后選擇“系統(tǒng)”將顯示相同的信息。您也可以在任何Windows版本的鍵盤上同時(shí)按下“ Windows”和“暫停暫停”按鈕。
接下來,我們要打下堅(jiān)實(shí)的基礎(chǔ):確保您了解Windows Update的最新信息,然后我們會(huì)繼續(xù)前進(jìn)。
Visual Studio 2019
從錯(cuò)誤1483835開始,本地Windows構(gòu)建默認(rèn)使用clang-cl作為編譯器。Visual Studio對于構(gòu)建工具,標(biāo)頭和SDK仍然是必需的。
自動(dòng)化版本仍使用Visual Studio 2017,因此在我們升級(jí)之前可能會(huì)有一些差異。錯(cuò)誤1581930跟蹤2019年構(gòu)建的各種問題。請?jiān)诖颂幪峤粏栴},如果遇到構(gòu)建失敗,請?jiān)诖似陂g降級(jí)。
下載并安裝 Visual Studio 2019 的社區(qū)版本。如果您擁有專業(yè)版和企業(yè)版,則也支持它們。
安裝時(shí),必須檢查以下工作負(fù)載:
“使用C ++進(jìn)行桌面開發(fā)”(在Windows組下)
“使用C ++開發(fā)游戲”(在“移動(dòng)與游戲”組下)
此外,轉(zhuǎn)到“單個(gè)組件”選項(xiàng)卡,并確保在“ SDK,庫和框架”組下選擇了以下組件:
“ Windows 10 SDK”(至少版本10.0.17134.0)
“用于v142構(gòu)建工具(x86和x64)的C ++ ATL”(如果要為ARM64構(gòu)建,也請選擇ARM64)
確保在安裝后運(yùn)行一次Visual Studio,以便它完成所有首次運(yùn)行的任務(wù)并將安裝與您的帳戶相關(guān)聯(lián)。
必備工具
MozillaBuild
最后,從Mozilla 下載MozillaBuild軟件包。接受默認(rèn)設(shè)置,尤其是默認(rèn)安裝目錄:c:\mozilla-build\。在某些版本的Windows上,錯(cuò)誤對話框?qū)槟峁笆褂谜_的設(shè)置重新安裝”的選項(xiàng)-您應(yīng)該同意并繼續(xù)。
完成此操作后,c:\mozilla-build\start-shell.bat在桌面上創(chuàng)建的快捷方式將使您的生活更輕松。
獲取來源
這是最后一步。雙擊啟動(dòng)shell.bat中c:\mozilla-build(或您在上面創(chuàng)建的快捷方式),將打開一個(gè)終端窗口。
首先從關(guān)閉目錄創(chuàng)建一個(gè)“ mozilla-source”目錄,C:\然后將其cd入目錄
cd c:/
mkdir mozilla-source
cd mozilla-source
接下來,您可以使用Mercurial獲取Firefox源代碼。有一個(gè)Wiki頁面介紹如何使用Mercurial獲取源代碼,但是,總而言之,如果您的網(wǎng)絡(luò)連接足夠好,可以不中斷地下載1 GB以上的數(shù)據(jù),并且您想要主要的開發(fā)資料庫,則可以使用:
hg clone https://hg.mozilla.org/mozilla-central
在等待該過程完成時(shí),請查看我們的Mercurial文檔。它說明了我們?nèi)绾卧贛ozilla中使用版本控制來管理代碼并更改對源代碼樹的更改。
構(gòu)建Firefox!
現(xiàn)在,我們將它們捆綁在一起。在終端窗口中,cd像以前一樣轉(zhuǎn)到源目錄,然后鍵入
cd mozilla-central
./mach bootstrap
./mach build
對于./mach bootstrap本文檔中未涵蓋的任何依賴項(xiàng),此步驟非常適用。請注意,bootstrap 僅適用于源代碼的Mercuial存儲(chǔ)庫,不適用于源代碼tar球和github鏡像。如果您使用的是Firefox或Android版Firefox前端,或者未做任何更改就構(gòu)建Firefox,請?jiān)谥械牡谝粋€(gè)問題中選擇構(gòu)件構(gòu)建./mach bootstrap。神器構(gòu)建將更快完成!Artifact構(gòu)建不適用于使用C ++代碼的人員。
你在路上 如果需要一段時(shí)間,不要?dú)鈈e;即使在最快的現(xiàn)代機(jī)器上也要花費(fèi)一些時(shí)間,而在較舊的硬件上則要花費(fèi)兩個(gè)小時(shí)或更長時(shí)間。Firefox很大,因?yàn)閃eb很大。
建立聯(lián)系
最后一步可能需要一些時(shí)間。完成后,您應(yīng)該花一點(diǎn)時(shí)間注冊一個(gè)Bugzilla帳戶!
Bugzilla.mozilla.org是Mozilla的問題跟蹤器。要評論錯(cuò)誤或提交補(bǔ)丁,您需要一個(gè)Bugzilla帳戶;您可以使用GitHub帳戶(如果有),也可以直接注冊一個(gè)Bugzilla帳戶。
與Bugzilla一樣,Mozilla的許多內(nèi)部通信都是通過Internet中繼聊天(IRC)進(jìn)行的。您可以在此處了解如何使用IRC連接到Mozilla。如果您只是剛剛起步,或者對設(shè)置有疑問,可以加入“ #introduction頻道”,我們的一些社區(qū)成員在這里閑逛以嘗試幫助新的貢獻(xiàn)者滾動(dòng)。
你準(zhǔn)備好了
當(dāng)mach構(gòu)建完成時(shí),您將根據(jù)硬盤驅(qū)動(dòng)器上的源代碼構(gòu)建自己的Firefox版本,并可以運(yùn)行。您可以使用
./mach run
現(xiàn)在,您擁有自己的Firefox內(nèi)置版本。
如果您在此處看到錯(cuò)誤,請?jiān)诒疚臋n的“疑難解答”部分中進(jìn)一步查找-一些防病毒軟件隔離了我們的某些測試,因此您需要為“ mozilla-source”和“ mozilla-build”目錄創(chuàng)建例外。不要關(guān)閉防病毒軟件!只需添加例外。
現(xiàn)在開始有趣
您已經(jīng)有了代碼,并且已經(jīng)編譯了Firefox。隨便用它./mach run,您就可以開始黑客攻擊了。下一步由您決定:通過IRC的“ #introduction channel ” 加入我們,在Twitter上關(guān)注StartMozilla并找到一個(gè)可繼續(xù)工作的錯(cuò)誤。
感謝您加入我們,并幫助我們使Firefox和開放式網(wǎng)絡(luò)更適合所有人。
詳細(xì)信息和故障排除
硬件和軟件要求
Firefox的構(gòu)建過程需要大量I / O和CPU,并且即使在現(xiàn)代硬件上構(gòu)建也可能需要很長時(shí)間。Mozilla開發(fā)的最低和建議的硬件要求是:
至少4 GB的RAM。建議使用8 GB或更大的容量,并且總是更好。
35 GB可用磁盤空間。該磁盤空間可容納Visual Studio 2019社區(qū)版,必需的SDK,MozillaBuild程序包,Mercurial源存儲(chǔ)庫以及足夠的可用磁盤空間進(jìn)行編譯。建議使用固態(tài)硬盤,因?yàn)镕irefox的構(gòu)建過程需要大量I / O。
Windows 7(Service Pack 1)或更高版本的64位版本。您仍然可以在64位Windows安裝上構(gòu)建32位Firefox。
總覽
Mozilla構(gòu)建過程需要大多數(shù)Windows系統(tǒng)上未預(yù)安裝的許多工具。除了Visual Studio外,還安裝MozillaBuild-一個(gè)軟件包,其中包括bash,GNU make,autoconf,Mercurial等所需的版本。
Firefox 61+要求安裝Visual Studio 2017 Update 6或更高版本。
使用Visual Studio 2015構(gòu)建Firefox 48至60。VisualStudio 2017也可用于構(gòu)建Firefox 58或更高版本。
Firefox 37到47使用Visual Studio 2013(VC12)以及可能的Visual Studio 2015構(gòu)建(盡管Visual Studio 2015可能不會(huì)構(gòu)建每個(gè)修訂版)。
Firefox的早期版本與Visual Studio的早期版本一起構(gòu)建。
安裝構(gòu)建先決條件
否則,請完成每個(gè)步驟,否則可能無法成功構(gòu)建。以下是有關(guān)這些軟件要求的說明。
通過Windows Update確保您的系統(tǒng)是最新的。
安裝Visual Studio Community 2019(免費(fèi))。或者,您也可以使用Visual Studio的付費(fèi)版本。如上文“ Visual Studio 2019”部分所述,構(gòu)建Firefox可能需要一些其他組件。不支持Visual Studio的早期版本。Firefox代碼庫依賴早期版本不支持的C ++功能。
可選地,除了VS2019之外,您可能還想安裝Visual C ++ 2008 Express(免費(fèi))來編譯構(gòu)建系統(tǒng)中使用的某些Python擴(kuò)展,因?yàn)槟J(rèn)情況下使用該編譯器構(gòu)建Windows的Python2.7.x。注意,如果要使用“馬赫資源使用情況”,“馬赫醫(yī)生”,“馬赫安卓模擬器”或在本地運(yùn)行talos測試,則應(yīng)安裝它以構(gòu)建psutil。
下載并安裝MozillaBuild軟件包,其中包含其他構(gòu)建工具。如果您安裝了Cygwin,請閱讀“提示”部分中的注釋。如果看到Windows錯(cuò)誤對話框,提示您可以使用“正確的設(shè)置”重新安裝,請?jiān)贛ozillaBuild的安裝程序退出后選擇該選項(xiàng),然后一切正常。有關(guān)MozillaBuild和指向較新版本的鏈接的更多信息,請?jiān)L問https://wiki.mozilla.org/MozillaBuild。
故障排除
在某些情況下,可能會(huì)出現(xiàn)以下問題:
一些防病毒和系統(tǒng)保護(hù)軟件可能會(huì)大大減慢或破壞構(gòu)建過程
Windows Defender和某些掃描防病毒產(chǎn)品對構(gòu)建時(shí)間有重大影響。例如,如果mozilla-central成功克隆但./mach build未能報(bào)告丟失的文件,則很可能遇到此問題。我們針對著名的安全漏洞的回歸測試可以包括一些防病毒軟件將其識(shí)別為威脅的代碼示例,這些代碼示例將隔離或破壞所涉及的文件。要解決此問題,您將需要在Windows Defender或防病毒軟件中將源目錄和對象目錄(mozilla-source和mozilla-build目錄)列入白名單,如果缺少文件,請使用“ hg update -C" 命令還原源代碼樹。完成此操作后,下一個(gè)./mach build應(yīng)完成成功。
以不同于系統(tǒng)的其他語言安裝Visual Studio可能會(huì)導(dǎo)致問題
例如,當(dāng)系統(tǒng)為英語時(shí)使用法語的Visual Studio會(huì)導(dǎo)致生成大量包含錯(cuò)誤并結(jié)束鏈接錯(cuò)誤。
注意:如果安裝工具文件夾的路徑包含空格或其他破字符(例如加號(hào),引號(hào)或元字符),則Mozilla將不會(huì)生成。Visual Studio工具和SDK是一個(gè)例外-它們可能安裝在包含空格的目錄中。強(qiáng)烈建議您接受所有安裝位置的默認(rèn)設(shè)置。
MozillaBuild
MozillaBuild軟件包包含構(gòu)建Mozilla所必需的其他軟件先決條件,包括MSYS構(gòu)建環(huán)境,Mercurial,autoconf-2.13,CVS,Python,YASM,NSIS和UPX,以及可選但有用的工具,例如wget和emacs。
下載當(dāng)前的MozillaBuild軟件包。
默認(rèn)情況下,軟件包安裝到c:\mozilla-build,建議使用默認(rèn)路徑。不要使用包含空格的路徑。安裝程序不會(huì)修改Windows注冊表。請注意,某些二進(jìn)制文件可能需要Visual C ++可再發(fā)行組件包 才能運(yùn)行。
MozillaBuild命令提示符期望設(shè)置: 請注意,MozillaBuild提供的“類UNIX”環(huán)境僅對構(gòu)建和提交Mozilla源代碼真正有用。您在現(xiàn)代Linux發(fā)行版中期望的大多數(shù)命令行工具都不存在,并且提供的那些工具可能已經(jīng)使用了十年左右(尤其是MSYS提供的工具)。特別是那些舊的工具可能會(huì)引起問題,因?yàn)樗鼈兊男袨橥ǔ2环项A(yù)期,有故障或不支持多年來被認(rèn)為是理所當(dāng)然的命令行參數(shù)。例如,使用以下命令復(fù)制源樹cp -rf src1 src2由于cp的版本太舊而無法正常工作(某些文件顯示“ cp:將不會(huì)創(chuàng)建硬鏈接”錯(cuò)誤)。簡而言之,MozillaBuild支持開發(fā)人員與Mozilla代碼進(jìn)行必要的交互,但是除此之外,如果它以各種令人興奮和出乎意料的方式使您失望,也不要感到驚訝。
打開MozillaBuild命令提示符
安裝必備組件后,start-shell.bat使用Windows命令提示符在安裝MozillaBuild的目錄中啟動(dòng) 批處理文件(c:\mozilla-build默認(rèn)情況下)。這將啟動(dòng)正確配置為構(gòu)建Firefox的MSYS / BASH命令提示符。所有其他命令應(yīng)在此命令提示符窗口中執(zhí)行。(請注意,這與您使用Windows CMD.EXE shell所獲得的不一樣。)
注意:這與Windows CMD.EXE shell所提供的不一樣。
為源創(chuàng)建目錄
注意:如果Firefox源代碼位于路徑中帶有空格的目錄(例如“文檔和設(shè)置”)下,則將無法生成Firefox源代碼。您可以選擇其他任何位置,例如新目錄c:/ mozilla-source或c:/ thunderbird-src。生成命令提示符也可以容忍“ c:\”和“ / c /”,但是前者在Windows命令提示符中引起混淆,而后者被某些工具(至少是MOZ_OBJDIR)誤解了。“ C:/”語法有助于引起注意,因?yàn)镸ozillaBuild命令提示符提供了已配置的環(huán)境和工具,因此從這里開始一直是假定的。
創(chuàng)建一個(gè)新的淺目錄(例如專門用于代碼的“ c:/ mozilla-source”或“ c:/ thunderbird-src”)是一個(gè)明智的主意:
cd c:/; mkdir mozilla-source; cd mozilla-source
如果您遇到問題,請記住以下診斷提示。現(xiàn)在您已經(jīng)準(zhǔn)備好獲取Firefox源并進(jìn)行構(gòu)建。
命令提示提示和警告
要粘貼到該窗口中,必須右鍵單擊該窗口的標(biāo)題欄,將光標(biāo)移至“編輯”菜單,然后單擊“粘貼”。您還可以在“屬性”菜單中設(shè)置“快速編輯模式”,然后右鍵單擊該窗口以粘貼您的選擇。
如果您安裝了Cygwin,請確保MozillaBuild目錄位于搜索路徑中的任何Cygwin目錄之前start-shell-msvc2015.bat(通過增強(qiáng)) (用于echo KaTeX parse error: Undefined control sequence: \) at position 102: …是Windows風(fēng)格的反斜杠(\?)?。所以,如果你想改變的目錄c:…VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT在mozconfig中進(jìn)行設(shè)置,以將Microsoft CRT DLL與應(yīng)用程序打包在一起。請注意,確切的.CRT文件可能取決于您的Visual Studio版本。
Microsoft反惡意軟件服務(wù)可能會(huì)干擾編譯,通常表現(xiàn)為與conftest.exe構(gòu)建期間相關(guān)的錯(cuò)誤。要解決此問題,請至少在對象目錄中添加排除設(shè)置。
當(dāng)intrin.h和windows.h一起包含時(shí),會(huì)遇到諸如“不允許重載函數(shù)’_interlockedbittestandset’的第二C鏈接”之類的錯(cuò)誤。使用#define重新定義函數(shù)名稱的一個(gè)實(shí)例。
-jN在Windows上,并行構(gòu)建()不適用于GNU品牌。您應(yīng)該使用mozmakeMozillaBuild當(dāng)前版本附帶的命令。使用該mach命令進(jìn)行構(gòu)建將始終使用最佳的make命令。
如果遇到諸如“錯(cuò)誤:找不到makecab.exe”之類的構(gòu)建失敗,請嘗試應(yīng)用來自錯(cuò)誤1383578的補(bǔ)丁,即:更改SET PATH="%PATH%;!LLVMDIR!\bin" 為SET “PATH=%PATH%;!LLVMDIR!\bin”。
如果您使用遇到構(gòu)建失敗LINK: fatal error LNK1181: cannot open input file …\security\nss3.lib,則可能與您mozilla-central位于Users文件夾中的克隆副本有關(guān)(可能是加密的)。嘗試將其移到“用戶”文件夾之外。該文檔建議C:\mozilla-source\mozilla-central應(yīng)該工作。
如果遇到失敗,則ERROR: GetShortPathName returned a long path name.需要為具有空格的路徑創(chuàng)建一個(gè)8dot3name短名稱。例如:fsutil file setshortname“ C:\ Program Files(x86)” PROGRA?2。如果收到“訪問被拒絕”,請嘗試將計(jì)算機(jī)重新啟動(dòng)到安全模式,然后重試。
翻譯的中文 將就看吧
總結(jié)
以上是生活随笔為你收集整理的火狐源码windows构建 2020-04-29最新版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IBM V3700 V2存储简易操作手册
- 下一篇: java信息管理系统总结_java实现科