fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2024-04-22
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
阅读:15314回复:11

[转贴]在Windows上编译Firefox(使用gcc)

楼主#
更多 发布于:2006-05-30 16:56
在Windows上编译Firefox(使用gcc)

FireFox是大家喜闻乐见的一个浏览器. 做为一个开源软件,意味着任何人都可以在自己的电脑上从源码编译这个软件.
从源码编译安装有什么好处呢?你可以利用编译器的优化参数来产生最适合你计算机的代码.  通过控制一些配置参数来改变
功能你可以定制你自己的软件版本,你可以得到最新的开发代码,这样代码通常是没有对应的编译好的二进制包供下载的.
最后,使用自己编译的软件也可以满足自己的虚荣心 : - )

现在开始.

准备工作

首先保证你的电脑运行着Windows NT架构的操作系统, 此外硬盘上必须要有一个分区拥有4GB以上的空闲空间, 编译时产生的

临时文件会充填你的硬盘, 如果这个分区被填满了, 编译将失败.

首先在这个分区上建立一个工作目录,比如D:\firefoxbuild

md D:\firefoxbuild


安装Cygwin

FireFox是在UNIX平台上开发的, 当在Windows平台上编译时, 必须安装相应的移植版开发工具, 所幸我们不需要一个个手工

的安装这些软件, <!-- w --><a class="postlink" href="http://www.cygwin.com">www.cygwin.com</a><!-- w -->为我们提供了一整套的类UNIX环境的开发平台. 所以只要执行这个安装程序就可以http://www.cygwin.com/setup.exe

在安装程序提示你选择Default Text File Type的时候, 选择UNIX而不是DOS

除了默认的软件配置外,还需要安装以下这些软件  
     cvs
     cygutils
     make
     patch
     patchutils
     perl
     unzip
     zip
以下假设cygwin被安装在E:\cygwin下

安装Netscape wintools

在这里下载http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip

在某个目录下解压缩,打开一个命令行(cmd.exe)开始安装

set MOZ_TOOLS=d:\firefoxbuild\moztools
md e:\moztools
cd buildtools\windows
install.bat


安装Mingw

Mingw为我们提供了编译器和一些库文件,当然也可以用MS VC做编译器,下一次我会尝试一下.

在这里 http://www.mingw.org/download.shtml
需要下载的是
     gcc-core
     gcc-g++
     binutils
     w32api
     mingw-runtime
把它们放在E:\mingw\下面
  
e:\cygwin\bin\gzip -d *.tar.gz
e:\cygwin\bin\tar -xvf binutils-*
e:\cygwin\bin\tar -xvf gcc-core-*
e:\cygwin\bin\tar -xvf gcc-g++-*
e:\cygwin\bin\tar -xvf mingw-runtime-*
e:\cygwin\bin\tar -xvf w32api-*


设置环境变量
以下为了编译的方便我们需要设置一些环境变量,设置完之后应该保持以后的操作都在这个命令行窗口中执行,如果新开了一个窗口,就必须重新设置

set MOZ_TOOLS=d:\firefoxbuild\moztools
set PATH=e:\mingw\bin;e:\mozilla\cygwin\bin;%MOZ_TOOLS%\bin;%PATH%
set HOME=c:\mozilla


头文件转换
Netscape wintools中的头文件的文本是DOS格式,我们需要将其转化为UNIX格式

cd d:\firefoxbuild\moztools\include 
dos2unix *.h
cd libIDL
dos2unix *.h


至此我们已经完成了所有的准备工作,编译即将开始,当然在开始之前需要选择如何得到原代码.下载稳定版的压缩包提供最稳定的代码,而用cvs同步代码树可以得到最新的代码.

获得稳定版压缩包
在这里下载 ftp://ftp.mozilla.org/pub/mozilla.org/f ... ce.tar.bz2
将其下载到d:\firefoxbuild\下并解压缩

tar jxvf firefox-1.5-source.tar.bz2
cd d:\firefoxbuild\mozilla


在当前目录下建立一个叫做.mozconfig的文本文件,内容如下

. $topsrcdir/browser/config/mozconfig
CC=gcc
CXX=g++
CPP=cpp
AS=as
LD=ld
ac_add_options --disable-accessibility


开始编译
make -f client.mk build_all


从cvs同步代码树

cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot login

在提示password时键入"anonymous"

cd d:\firefoxbuild\
cvs checkout mozilla/client.mk
cvs checkout mozilla/browser/config

cd mozilla


在当前目录下建立一个叫做.mozconfig的文本文件,内容如下

. $topsrcdir/browser/config/mozconfig
CC=gcc
CXX=g++
CPP=cpp
AS=as
LD=ld
ac_add_options --disable-accessibility



cd mozilla


同步代码需要较长的一段时间
make -f client.mk pull_all

开始编译
make -f client.mk build_all


结束

编译所需要的时间依计算机的性能而异,可以趁此时间出去约会什么的.

当编译完成后,你可以测试新编译的FireFox了
d:\firefoxbuild\mozilla\dist\bin\firefox.exe -console


打包成安装包
make -C d:\firefoxbuild\mozilla\browser\installer installer
hnstxx
千年狐狸
千年狐狸
  • UID1952
  • 注册日期2005-01-09
  • 最后登录2013-05-14
  • 发帖数4977
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2006-05-30 16:56
学习ing.......
MM:你是个外表冷酷,内心却很甜蜜的男人。
Amelia
火狐狸
火狐狸
  • UID2093
  • 注册日期2005-01-12
  • 最后登录2022-02-19
  • 发帖数234
  • 经验14枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
2楼#
发布于:2006-05-30 16:56
感谢。好好学习下~
goldentime
小狐狸
小狐狸
  • UID15930
  • 注册日期2006-11-25
  • 最后登录2006-12-02
  • 发帖数11
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2006-05-30 16:56
这编译一下得要多长时间啊?
fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2024-04-22
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
4楼#
发布于:2006-05-30 16:56
如果比较好的机器配置,内存够用,大概30小时到1小时
taizitju
千年狐狸
千年狐狸
  • UID10093
  • 注册日期2005-11-27
  • 最后登录2012-04-12
  • 发帖数3638
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2006-05-30 16:56
恩  一般的话  吃个饭,睡午觉  然后就好了
[color=orange][b]为新手服务[/b][/color]  [color=BLUE][b]快速解决问题传送门:[/b][/color][url=https://www.firefox.net.cn/newforum/viewtopic.php?t=22571][color=red][b]①Firefox初级教程(置顶帖)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/viewtopic.php?t=27478][color=red][b]②孟婆汤(清空profile工具)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/viewtopic.php?t=26765][color=red][b]③减肥茶(半淘汰)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/search.php][color=red][b]④搜索论坛[/b][/color][/url]
yaren
小狐狸
小狐狸
  • UID18117
  • 注册日期2007-04-19
  • 最后登录2007-04-24
  • 发帖数1
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2006-05-30 16:56
我自己编译做2次开发,但是总少nsIToolkitObserver这个类?不知道有人碰到没有?是不是没编译成功?
foxfirefox
千年狐狸
千年狐狸
  • UID16837
  • 注册日期2007-01-27
  • 最后登录2019-10-22
  • 发帖数1409
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
7楼#
发布于:2006-05-30 16:56
是否有人能够提供所有的编曲译文件共享出来。
taizitju
千年狐狸
千年狐狸
  • UID10093
  • 注册日期2005-11-27
  • 最后登录2012-04-12
  • 发帖数3638
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2006-05-30 16:56
现在都是用vc编译的了 gcc 编译windows版本。。可能会不过。


vc 还 pgo 编辑的难度。。大大增加了。
[color=orange][b]为新手服务[/b][/color]  [color=BLUE][b]快速解决问题传送门:[/b][/color][url=https://www.firefox.net.cn/newforum/viewtopic.php?t=22571][color=red][b]①Firefox初级教程(置顶帖)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/viewtopic.php?t=27478][color=red][b]②孟婆汤(清空profile工具)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/viewtopic.php?t=26765][color=red][b]③减肥茶(半淘汰)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/search.php][color=red][b]④搜索论坛[/b][/color][/url]
e_sharp
小狐狸
小狐狸
  • UID25800
  • 注册日期2008-08-12
  • 最后登录2008-08-12
  • 发帖数6
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2006-05-30 16:56
非常讨厌Cygwin
新的开始
鹤舞九月天
小狐狸
小狐狸
  • UID35785
  • 注册日期2011-03-29
  • 最后登录2012-08-28
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2006-05-30 16:56
谢谢楼主的分享,你的文章非常详细!不像现在很多人,很少有分享,都很自私!
lord
非常火狐
非常火狐
  • UID6208
  • 注册日期2005-05-21
  • 最后登录2024-03-27
  • 发帖数634
  • 经验81枚
  • 威望0点
  • 贡献值12点
  • 好评度3点
  • 社区居民
  • 忠实会员
11楼#
发布于:2006-05-30 16:56
应该调整参数进行优化,打造适合自己的浏览器,否则还不如用官方的
心想事成,人生如梦
游客

返回顶部