阅读:15646回复:11
[转贴]在Windows上编译Firefox(使用gcc)
在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 |
|
1楼#
发布于:2006-05-30 16:56
学习ing.......
|
|
|
2楼#
发布于:2006-05-30 16:56
感谢。好好学习下~
|
|
|
3楼#
发布于:2006-05-30 16:56
这编译一下得要多长时间啊?
|
|
4楼#
发布于:2006-05-30 16:56
如果比较好的机器配置,内存够用,大概30小时到1小时
|
|
5楼#
发布于:2006-05-30 16:56
恩 一般的话 吃个饭,睡午觉 然后就好了
|
|
|
6楼#
发布于:2006-05-30 16:56
我自己编译做2次开发,但是总少nsIToolkitObserver这个类?不知道有人碰到没有?是不是没编译成功?
|
|
7楼#
发布于:2006-05-30 16:56
是否有人能够提供所有的编曲译文件共享出来。
|
|
8楼#
发布于:2006-05-30 16:56
现在都是用vc编译的了 gcc 编译windows版本。。可能会不过。
vc 还 pgo 编辑的难度。。大大增加了。 |
|
|
9楼#
发布于:2006-05-30 16:56
非常讨厌Cygwin
|
|
|
10楼#
发布于:2006-05-30 16:56
谢谢楼主的分享,你的文章非常详细!不像现在很多人,很少有分享,都很自私!
|
|
11楼#
发布于:2006-05-30 16:56
应该调整参数进行优化,打造适合自己的浏览器,否则还不如用官方的
|
|
|