火狐源码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构建 2020-04-29最新版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IBM V3700 V2存储简易操作手册
- 下一篇: windows电脑共享视频给手机