Firefox 60.9esr编译失败求助:多系统下cssparser构建出错
解决Firefox 60.9esr编译中cssparser构建失败的问题
问题背景
在Debian 10(buster)、Debian 12(bookworm)、Ubuntu 18.04(bionic beaver)系统编译Firefox 60.9esr时,编译阶段因cssparser模块构建失败退出,核心错误表现为链接器无法找到lrt库,以及Rust版本不兼容导致的编译报错。
解决方案
1. 锁定适配的Rust版本
Firefox 60.9esr要求Rust版本为1.32.0,新发行版自带Rust版本过高,需通过rustup安装指定版本:
curl https://sh.rustup.rs -sSf | sh rustup install 1.32.0 rustup default 1.32.0 # 验证版本 rustc --version
2. 安装完整编译依赖
针对不同系统安装基础依赖,注意Firefox 60esr依赖Python 2.7:
# 基础依赖(所有系统通用) sudo apt-get update sudo apt-get install build-essential libgtk-3-dev libdbus-glib-1-dev libxt-dev yasm zip unzip # Debian 12需额外安装Python 2.7 sudo apt-get install python2.7 python2.7-dev sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
3. 调整编译配置
在Firefox源码目录创建.mozconfig文件,添加以下内容:
ac_add_options --enable-optimize ac_add_options --enable-release ac_add_options --disable-debug ac_add_options --disable-tests # 指定Rust工具链路径 export RUSTC=$(which rustc) export CARGO=$(which cargo) # 解决lrt库缺失问题 ac_add_options --with-ldflags=-lrt
4. 清理缓存后重新编译
清理之前的编译残留,避免旧缓存干扰:
./mach clobber ./mach build
原因说明
Firefox 60.9esr属于老旧版本,对构建工具链(尤其是Rust)的版本依赖严格,新发行版的高版本Rust与cssparser的旧代码存在兼容性问题;同时部分新系统中lrt库已合并到libc,但旧版编译脚本仍会尝试单独链接该库,导致报错。
内容的提问来源于stack exchange,提问作者Itsuki Moroshima
相关产品推荐
相关产品推荐

