options.h的配置

476阅读 0评论2010-07-05 toughie
分类:LINUX

river的编译中,最 需要注意的就是options.h的配置,只有好的配置,编译出来的driver才稳定,实用。
这一讲采用share.tomud.com德 v22pre11源码
考虑到所面对的对象,只讲解实用性较强的选项。
1.兼容篇
#undef HAS_STATUS_TYPE
旧 版mudos中有status这个修饰词,如果需要应#define
#define SANE_EXPLODE_STRING
例子中讲得 很明白
如果undef 的话 explode("..x.y..z..", ".") 结果是 ({ "x", "y", "", "z", "" })
否则是 ({ "", "x", "y", "", "z", "" })
通常应该define使用
#undef REVERSIBLE_EXPLODE_STRING
定义这个以后是({ "", "", "x", "y", "", "z", "", "" })
通常undef
#undef NO_ADD_ACTION
#undef NO_ENVIRONMENT
#undef NO_WIZARDS
这3个没说的,作用大家都知道,所以要undef
2。杂项
#undef CUSTOM_CRYPT
这 个是使用Md5的选项,不过通常不使用。下面的文章中我回重点讲如何使用Md5
#define ARRAY_STATS
这个是提供 array的选项,也就是int *,string *,object *之类的。。。
#define LOG_CATCHES
纪录 catch()函数引发的错误
#define ARGUMENTS_IN_TRACEBACK
在错误中显示行数之类的东西。
#define LOCALS_IN_TRACEBACK
在错误中显示变量名称
#ifndef LATTICE
#define CONFIG_FILE_DIR "/home/v22pre11/bin"
#else
#define CONFIG_FILE_DIR "etc:"
#endif
默认的config dir,通常根本不需要改
#define DEFAULT_PRAGMAS PRAGMA_WARNINGS + PRAGMA_SAVE_BINARY + PRAGMA_OPTIMIZE + PRAGMA_ERROR_CONTEXT
下面具体解释各个pragma
* PRAGMA_STRICT_TYPES: 严格的书写检查 不需要
* PRAGMA_WARNINGS:     显示warning 需要
* PRAGMA_SAVE_TYPES:   保存函数参数的类型,并且在继承调用中检查 不需要
* PRAGMA_SAVE_BINARY:  保存.b文件 需要
* PRAGMA_OPTIMIZE:     进行代码优化,注:在v22.b13以前版本中存在bug,容易引发死机。so 不需要
* PRAGMA_ERROR_CONTEXT:在错误报告出错的行号 need
#undef NO_RESETS
#undef LAZY_RESETS
reset大家都需要
#define SAVE_EXTENSION ".o"
dbase文件后缀
#define NO_ANSI
#define STRIP_BEFORE_PROCESS_INPUT
以上两个选项可以在输入中过滤ascii字符, 以避免出现问题
#define TRAP_CRASHES
当机的时候执行master.c中的crash()
#undef DROP_CORE
当机的时候释放core
#define THIS_PLAYER_IN_CALL_OUT
在 call_out()中使用this_player()
#define SNOOP_SHADOWED
#define RECEIVE_SNOOP
提供snoop()函数
#undef NO_BUFFER_TYPE
我们需要buffer类 型,ftpd采用的就是buffer
#define BINARIES
运行.b代码
#undef ARRAY_RESERVED_WORD
可以用int array xxx 代替 int *
#undef PACKAGE_DB
#ifdef PACKAGE_DB
#define MYSQL           /* MiniSQL, it's small; it's free */
#endif
提供mysql
#define PACKAGE_UIDS
提供uid,euid
#define AUTO_SETEUID
中文mud一般需要define这个选项
#define HEARTBEAT_INTERVAL 2000000
默认的心跳
#define MAX_SAVE_SVALUE_DEPTH 25
保证xxx\xxxx\xxx \xxx不超过25个
#define CFG_MAX_LOCAL_VARIABLES         50
一个文件中最多的变量个数
#define CFG_MAX_CALL_DEPTH              50
最多的递归深度
好了,这些就是常用的几个变量,拿到新的src 以后,首先设置options.h哦
还有,记得build的时候要先make clean才行。
上一篇:Efun基本分类
下一篇:options.h [2]