本文共 4553 字,大约阅读时间需要 15 分钟。
Mozilla XULRunner 的编译。
潘李亮 2006-10-31 Mozilla里有很多好东西。 比如那个js引擎和嵌入式渲染引擎。这段时间在想如果能在游戏里嵌入一个浏览器该多好啊。这个想法用mozilla的渲染引擎来实现在再好不过的了。Mozilla的渲染引擎叫xulrunner。它和firefox 用的是同一个代码树,也就是说在编译的时候指定不同的选项就可以编译出xulrunner和firefox。Xulrunner以前叫gecko。这个东西在官方可以下到sdk。不过sdk里少头文件。只有可执行的dll。没办法只能自己编译了。在linux 编译是非常简单的事情./configure & make & make install 基本上就OK了。在 windows下就比较麻烦。现在我来分享一下我编译xulrunner的体会。第一步:下载 下载可以选择下载任何一个完整的mozilla代码包。我下的xulrrunner的。下下来后解包到一个目录里。这个目录最好不要包含空格等非字母字符。我放到了 C:/mozilla 。 反正编译后就删除了。无所谓的。 xulrunner的地址:第二步:了解编译策略
进入mozilla的代码目录后,你会发现有一个client.mk和一个configure。在linux下运行./configure 会生成一个makefile。这个是很经典的做法。给configure脚本指定参数可以指定编译出什么产品。比如是xulrunner还是firefox等。但是mozilla 不推荐自己用./configure。而是使用.mozconfig文件。注意这个文件前面有个点。需要在windows的命令行 中才可以创建出前面带点的文件。直接按f2重命名是不行的:-(。在这个文件里,我们可以指定要编译出什么东西和编译的选项已经输出的目录,因为我们要编译的是xulrunner。所以我的.mozconfig是这么写的: mk_add_options MOZ_CO_PROJECT=xulrunner ac_add_options --enable-application=xulrunner mk_add_options ac_add_options --enable-optimize ac_add_options --disable-debug ac_add_options --disable-static ac_add_options --enable-shared ac_add_options --disable-ldap ac_add_options --disable-mailnews ac_add_options --enable-extensions=default ac_add_options --enable-crypto ac_add_options --disable-composer ac_add_options --enable-single-profile ac_add_options --disable-profilesharing ac_add_options --disable-profilelocking ac_add_options --disable-accessibility ac_add_options --enable-jsd ac_add_options --disable-installer ac_add_options --enable-xpinstall ac_add_options --disable-postscript ac_add_options --disable-mathml ac_add_options --enable-xpfe-components ac_add_options --disable-dtd-debug ac_add_options --disable-logging ac_add_options --disable-tests ac_add_options --enable-necko-protocols=http,file,about,res,jar,data ac_add_options --enable-image-decoders=png,gif,jpeg ac_add_options --enable-svg ac_add_options --enable-svg-renderer=gdiplus ac_add_options --disable-javaxpcom ac_add_options --disable-activex ac_add_options --disable-activex-scripting ac_add_options –enable-canvas 其中mk_add_options MOZ_CO_PROJECT=xulrunner 和ac_add_options --enable-application=xulrunner 指定编译xulrunner,如果改成firefox、就可以编译出firefox。具体可以 参见mozilla的build指南。下面的mk_add_options 指定输出路径。而这两条 ac_add_options --enable-optimize ac_add_options --disable-debug 是说要编译release版本。打开优化,如果你想编译debug版本可以改改这两条.OK. 到目前为止,Mozilla的代码是配置好了。第三步:编译工具之 moz tools
在windows下要用VC编译mozilla。必须安装这个东西,请下载把这个工具解开后放到一个地方。比如c:/moztools。应该在moztools下有bin , include ,lib目录。然后编译的时候还需要几个库,这两个库是VC没有的,所以要下:解压后,把vc71目录里的bin , include , lib目录拷贝到和moztools一起,目录名不是必须为C:/moztools。这个目录必须和后面的Cygwin的启动脚本一致就可以了。也就是说这个目录名是通过环境变量输出的。另外一点需要注意的是,VC8编译mozilla会有问题。只能用vc71。 第四步:编译环境之 Cygwin。 可能很多人觉得这个麻烦。没办法。Mozilla只能用它编译。逃不了。必须装这个!!下载Cygwin的时候,必须下的几个包是make , unzip , zip , perl , patchutils 。 我习惯把cygwin装在c:/cygwin这个地方。 这里是Cygwin的下载地方 Cygwin现在默认的make是3.81,这个版本的make没法编译mozilla。要改成3.80的。我们可以google一个3.80的make。然后把c:/cygwin/bin下的覆盖掉。 还有一个需要注意的是,cygwin/bin下有一个link.exe。这个会和vc的link冲突解决办法就是把这个link.exe 改名,比如改成glink.exe。必然在make的时候会报告link 工具版本不匹配。 OK。Cygwin到目前为止装好了。现在要给Cygwin指定环境变量。 C:/cygwin的目录下有一个cygwin.bat。我们可以修改这个.bat 。 首先,要指定步骤三里的moztools路径和那几个VC用到的库的路径 SET MOZ_TOOLS=C:/moztools SET GLIB_PREFIX=C:/moztools SET LIBIDL_PREFIX=C:/moztools SET CYGWINBASE=C:/cygwin 然后别忘记了调用VC的环境变量, CALL D:/MSVCNET7/Vc7/bin/vcvars32.bat //具体看你自己的vc装在什么地方 然后别忘记了设置其他的环境变量 SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%/bin SET INCLUDE=%GLIB_PREFIX%/include;%INCLUDE%;%MINGWBASE%/include SET LIB=%GLIB_PREFIX%/lib;%LIB% SET PATH=%PATH%;%MOZ_TOOLS%/bin整个cygwin.bat 看上去是这样的:
@echo off SET MOZ_TOOLS=C:/cygwin/moztools SET GLIB_PREFIX=C:/cygwin/moztools SET LIBIDL_PREFIX=C:/cygwin/moztools SET CYGWINBASE=C:/cygwin rem --- Clean slate start SET INCLUDE= SET LIB= SET PATH=C:/;C:/windows/system32;C:/windows;C:/windows/system32/wbemrem --- Then prepend Cygwin path
SET PATH=%CYGWINBASE%/bin;%PATH%rem --- Set VC7 compiler environment vars copy the VC7/bin/vcvars32.bat outside
CALL D:/MSVCNET7/Vc7/bin/vcvars32.bat rem --- Add glib/libidl to build environment SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%/bin SET INCLUDE=%GLIB_PREFIX%/include;%INCLUDE%;%MINGWBASE%/include SET LIB=%GLIB_PREFIX%/lib;%LIB%rem -- moztools comes last after glib/libIDL
SET PATH=%PATH%;%MOZ_TOOLS%/binC:
chdir C:/cygwin/bin bash --login -iOK. 到这里为止,所有的环境都建立好了。
双击刚才写好的cygwin.bat。然后出来Cygwin 的控制台,进入mozilla的代码目录,敲入以下命令: make -f client.mk build 等待。。。大约一个到两个小时不等。编译完成后在你指定的输出路径下会有一个dist目录,这个就是你需要的xulrunner的sdk。Release版本的大概为200M。Debug版本有600M ....我的天。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1360862