编译Mudos之options.h配置详细选项
2007/12/4 10:28:48
将 MudOS 下载解压以后可以在相应目录的根目录中找到 options.h 这个文件。如果修改了这个文件,那么每次都需要重新编译 MudOS 才能生效。重新编译之前,请执行 make clean 一下。
下面的 options.h 来自 MudOSv22.2b10,MudOS作者推荐在修改options.h 之前,先将它备份成 local_options。新的特性将会自动对比local_options并且在编译的时候告知
。文中的选项定义并非最原始的定义。此文只是为了说明各个选项的大致含义。
/*
* options.h: defines for the compile-time configuration of the MudOS driver
*/
#ifndef _OPTIONS_H_
#define _OPTIONS_H_
----------------------------------------------------------------------------
----
所有的常规efuns都包含在func_spec.c的定义中
如果你对自己的系统不熟悉,请使用缺省的定义 SYSMALLOC,同时将其它的undef掉。
你必须选择下面的其中一种定义,并且将其它的定义undef掉。
* SYSMALLOC: 缺省选项,没有额外的系统开支,没有统计能力。
* SMALLOC:速度比较快,但是开销相对大一些。
* BSDMALLOC:速度更快,开销比较大。
#define SYSMALLOC
#undef SMALLOC
#undef BSDMALLOC
* WRAPPEDMALLOC:这个附加定义可以换来有限的统计能力,并且不会增加太多的系统开
销。
* DEBUGMALLOC:系统花费比较折中
#undef WRAPPEDMALLOC
#undef DEBUGMALLOC
如果没有定义SMALLOC,请不要使用下面这个定义。
#undef SBRK_OK
如果没有定义 BSDMALLOC or SMALLOC ,请不要使用下面这个定义
#undef DO_MSTATS
DEBUGMALLOC定义的附加定义,用来强化DEBUGMALLOC,但是需要更多的开销。
set_malloc_mask(int) and debugmalloc(string,int)等efuns将可以被使用。
#undef DEBUGMALLOC_EXTENSIONS
同上,是用来调试的良好定义,check_memory() efun将可以被使用。
#undef CHECK_MEMORY
----------------------------------------------------------------------------
----
兼容性定义选项:
由于MudOS发展了很多年,所以历代MudOS为了保证原有的Lib可以不修改就被移植到新的
OS上面,增加了这些兼容性选项。如果你是根据OS撰写Lib的人,可以定义一些优化的选
项来设计自己的Lib,而不必考虑重写的问题。
以前的MudOS使用status这样子的定义词,这是很老的定义了,对于新的Lib设计而言,
这个定义毫无用处。
#undef HAS_STATUS_TYPE
explode()选项,这个根据个人的习惯来定义吧,也许你喜欢自己定义explode()这个ef
uns的工作方式。
如果不定义下面两个选项, explode("..x.y..z..", ".") 的结果是 ({ "x", "y", ""
, "z", "" })
如果定义 SANE_EXPLODE_STRING 选项,其结果将是 ({ "", "x", "y", "", "z", "" }
)
如果定义 REVERSIBLE_EXPLODE_STRING 选项,其结果将是 ({ "", "", "x", "y", "",
"z", "", "" })
#define SANE_EXPLODE_STRING
#undef REVERSIBLE_EXPLODE_STRING
这个选项用来确定call_other的行为,但是这个选项对于系统毫无好处可言。
#undef CAST_CALL_OTHERS
如果定义了下面这个选项,那么任何传往非交互式物件(比如npc)的信息前面都会被加
上]符号,这个也不是非常需要,而且很容易被模拟出来。
#define NONINTERACTIVE_STDERR_WRITE
如果定义下面这个选项,你将不能使用set_light()这样的efuns函数,不过没有关系,
这个函数是在太落伍了,这个功能非常容易被模拟出来。
#define NO_LIGHT
嗯,下面这个选项,是非常重要的选项,如果你定义了,那么意味着你将不能使用add_
action, commands, livings等等这些相关的efuns,而不得不使用 process_input() 这
样的函数来定义物件所有的动作。这将是非常难堪的工作。所以保持add_action还是非
常有用的。
#undef NO_ADD_ACTION
定
下一页
返回列表
返回首页
©2025 MUD游戏网_文字mud 电脑版
Powered by iwms