--- title: GRE slug: GRE tags: - 'Gecko:Articles' - XULRunner - 'XULRunner:Articles' translation_of: Archive/Mozilla/GRE ---
嵌入式Mozilla技术的框架被称为GRE(Gecko运行时环境)。该嵌入式框架允许应用程序定位并嵌入一个兼容的gecko运行时,而不须要事先知道运行时安装的位置。这个文档描述了被嵌入方如何链接到一个GRE。要了解如何向GRE注册,请阅读GRE注册。
原来的"XRE"项目(意思是XUL运行时环境),已经被XULRunner项目取代。
有两种不同的GRE:旧GRE是Mozilla应用程序套件的一部分。它随着Mozilla 1.4至1.7.x的Windows版安装程序安装。在Linux上还没有正式发布过带有GRE的Mozilla,但是各个Linux分发者例如Red Hat曾向Mozilla注册过他们的好像是GRE。Mozilla套件从来没有在mac平台上支持GRE。
XULRunner是GRE的新版本,它不仅允许嵌入,而且能够引导启动整个XUL应用程序,例如Firefox。XULRunner支持或将要支持所有三大主流平台(Windows,mac,和Linux)。
如果一个应用程序希望使用GRE,必须确保链接到一个适当的库。如果直接链接xpcom.dll/libxpcom.so(xpcom.lib导入库),您的应用程序将不能启动,除非xpcom.dll在您的PATH路径中。这样的话就妨碍了在运行时动态地寻找兼容的GRE。
为了寻找兼容的GRE,您应当使用函数GRE_GetGREPathWithProperties(声明在 {{ Source("xpcom/glue/standalone/nsXPCOMGlue.h") }})。这将允许嵌入者指定适合的GRE版本,并指定GRE必须实现的特性(目前还没有特殊的特性被定义)。
解决静态链接xpcomglue.lib的方案,被称为"standalone glue" (see XPCOM Glue). 该库在嵌入代码和XPCOM间提供一个中间层。要使用XPCOM glue,您必须遵循以下步骤:
XULRunner GRE被设计成不需要嵌入者在调用XPCOMGlueStartup前设置任何环境变量,比如PATH或LD_LIBRARY_PATH,因为它将动态的定位正确的依赖库。不幸的是,基于Mozilla套件的GRE没有这样的便利,特别是在Linux上。嵌入者将需要设置LD_LIBRARY_PATH环境变量,并开始一个新进程才能正确地嵌入基于套件的GRE。
{{ languages( { "en": "en/GRE", "ja": "ja/GRE" } ) }}