链接: https://pan.baidu.com/s/14XqI6G01KogPIcumCfavMA 提取码: bzgb
1、平台
Win10 64bit
Visual studio 2019 16.2.0
至少4G RAM,建议8G,当然越多越好。40G硬盘空间。
注:编译Firefox68 for windows需要64位的win7或以上版本的windows。
2、源码
firefox-68.0.1.source.tar.xz。解压至:f:\firefox68.0.1
3、前言
大多数windows机器上并没有安装Mozilla编译过程需要的众多工具。除Visual Studio外,你必须安装MozillaBuild,该工具是一系列软件的合集,包括正确版本的bash, GNU make, autoconf, Mercurial和其它许多的软件。
https://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe
4、准备工作
4.1 Visual Studio
Visual studio 2019 16.2.0
安装时选择:
使用C++的桌面开发
使用C++的游戏开发
Windows 10 SDK (10.0.17763.0)
Windows 10 SDK (最新版,最低支持10.0.17134.0)
C++ ATL for v142 build tools (x86 and x64)
若需要编译用于ARM的Firefox,则需要C++ ATL for v142 build tools (ARM 和 ARM64)。
4.2 安装MozillaBuild
https://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe
安装于:C:\mozilla-build
需要注意的是如果路径中有空格、加号、引号等字符,Mozilla将不能编译,故强烈建议接受默认的安装设置。但Visual Studio tools和SDKs例外,这些工具安装的路径可能有空格。
建议在桌面创建C:\mozilla-build\start-shell.bat的快捷方式,这样可以节省很多时间。
4.3 安装rust
编译至少需要:rust 1.34.0
rust-1.36.0-i686-pc-windows-msvc.msi,根据不同的平台选择。
https://static.rust-lang.org/dist/rust-1.36.0-i686-pc-windows-msvc.msi
https://static.rust-lang.org/dist/rust-1.36.0-x86_64-pc-windows-msvc.msi
安装于:C:\rust
注:编译32位用i686-pc-windows-msvc;编译64位用x86_64-pc-windows-msvc。
4.4 安装Cbindgen
cmd
安装:cargo install cbindgen
若安装,则更新:cargo install cbindgen --force
4.5 安装LLVM and Clang
安装LLVM and Clang,地址如下:
http://releases.llvm.org/download.html
A、首先安装32位的LLVM
若编译64位的firefox则不需要。
Source\LLVM\8.0.0\LLVM-8.0.0-win32.exe。
假定安装目录为:C:\LLVM32
提供32位的libclang.dll供使用。否则直接用64位的libclang.dll时会提示无效64位的dll。
B、然后安装64位的LLVM
Source\LLVM\7.0.0\LLVM-7.0.0-win64.exe。
32位的会错:LLVM ERROR: out of memory
假定安装目录为:C:\LLVM64
安装时不要删除当前已安装的32位版本。
C、llvm-config
安装包中无llvm-config.exe,需要自行编译。
只需要解压llvm-8.0.0.src.tar.xz。
分包生成32和64位的sln。选择Tools->llvm-config生成即可。
llvm-config-bin.rar中已有相应的编译文件。解压放置到llvm安装目录的bin文件夹下,即解压分别放置C:\LLVM64\bin和C:\LLVM32\bin文件夹下。
4.6 安装nasm
nasm-2.13.03-win64.zip,解压至C:\nasm
4.7 修改mozilla-build查询路径
用记事本打开C:\mozilla-build\start-shell.bat,修改如下:
SET PATH=C:\mozilla-build;C:\rust\bin;C:\LLVM64\bin;C:\nasm;%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem
4.8 The libclang located at C:/LLVM32/bin\libclang.dll is too old (need at least 4.0).
打开firefox-68.0.1\build\moz.configure\bindgen.configure
屏蔽如下:
5、编译
5.1 mozconfig
在源代码目录中新建文本文件“mozconfig”,内容如下:
# mozilla config stylo
#ac_add_options --with-libclang-path="C:/LLVM/lib"
ac_add_options --with-clang-path="C:/LLVM64/bin/clang.exe"
ac_add_options --with-libclang-path="C:/LLVM32/bin"
ac_add_options --disable-debug-symbols
ac_add_options --target=i686-pc-mingw32
ac_add_options --host=i686-pc-mingw32
5.2 编译
运行start-shell.bat,这样会启动GNU BASH。
cd /f/firefox-68.0.1
./mach build
5.3 UnicodeDecodeError
解决方案:
在firefox-68.0.1\obj-x86_64-pc-mingw32\_virtualenvs\init\Lib\sitecustomize.py
添加如下内容:
# set system default encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
5.3 再次运行
./mach build
5.4 所得
全程一个多小时后即可获得,在obj-i686-pc-mingw32\dist\bin获得编译结果。
6. 中文包
在FireFox地址栏里输入"about:config" 回车,输入general.useragent.locale,双击该项然后再弹出的对话框里输入"zh-CN",确定。重启浏览器后FireFox就变为中文版的了。
————————————————
版权声明:本文为CSDN博主「waji2000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/waji2000/article/details/97681408