MudOSv22pre11_For_Linux.zip 架设xkx2001求助!
上次问了问mudos编译问题,现在换了32位平台已经解决了mudos编译。目前在网上下了一个xkx2001的mudlib,是windows平台的,而且我在windows平台运行,可以正确出现登陆画面了
现在我把这个mudlib拷贝到linux的/mud/xkx2001目录里。并用
find . -name *.c|xargs dos2unix
find . -name *.h|xargs dos2unix
find . -name *.o|xargs dos2unix
修改了编码。
然后再将编译好的driver拷贝到mudlib下面。
先执行./addr_server 5555
然后修改mudlib下的config.xkx文件
address server port : 5555
# absolute pathname of mudlib
# mudlib directory : .
mudlib directory : /mud/xkx2001
# absolute pathname of driver/config dir
# binary directory : .
binary directory : .
# debug.log and author/domain stats are stored here
log directory : /log
然后执行./driver config.xkx
提示
侠客行 (MudOS v22pre11) starting up on Linux - Thu Jul 15 11:12:12 2010
Connection to address server (localhost 5555) refused.
include/globals.h line 103: Warning: redefinition of #define ROOM
]simul_efun loaded successfully.
include/globals.h line 103: Warning: redefinition of #define ROOM
Loading preloaded files ...
Initializations complete.
Accepting connections on port 8888.
当我连接8888的时候,就会出现错误提示
执行时段错误 *Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c µÚ 12 ÐÐ
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c µÄ connect() µÚ 17 ÐУ¬Îï¼þ£º adm/single/master
呼叫来自:adm/single/master.c µÄ CATCH() µÚ 17 ÐУ¬Îï¼þ£º adm/single/master
呼叫来自:adm/single/master.c µÄ log_error() µÚ 124 ÐУ¬Îï¼þ£º adm/single/master
呼叫来自:adm/single/simul_efun.c µÄ wizardp() µÚ 12 ÐУ¬Îï¼þ£º adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
后面还有很多类似信息 dos2unix只有必要对非源代码执行。.c的问题不需要。根据错误信息,你应该打开master.c来看看到底里面有些啥 把你的debug.log放到windows或者有中文环境的系统下看到底是啥信息,然后到master.c里去debug 下面是完整的debug.log文件,还望高手给看看什么问题
----------------------------------------------------------------------------
侠客行 (MudOS v22pre11) starting up on Linux - Thu Jul 15 11:14:08 2010
Connection to address server (localhost 5555) refused.
include/globals.h line 103: Warning: redefinition of #define ROOM
include/globals.h line 103: Warning: redefinition of #define ROOM
Loading preloaded files ...
Initializations complete.
Accepting connections on port 8888.
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:clone/user/login.c 的 logon() 第 12 行,物件: clone/user/login#0
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:clone/user/login.c 的 logon() 第 12 行,物件: clone/user/login#0
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
adm/daemons/logind.c line 9: Warning: redefinition of #define MAX_USERS
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:clone/user/login.c 的 logon() 第 12 行,物件: clone/user/login#0
呼叫来自:adm/daemons/logind.c 的 create() 第 71 行,物件: adm/daemons/logind
呼叫来自:adm/single/master.c 的 valid_seteuid() 第 273 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM
执行时段错误:*Bad argument 1 to getuid()
Expected: object Got: "include/globals.h".
程式:adm/daemons/securityd.c 第 734 行
物件: adm/daemons/securityd
呼叫来自:clone/user/login.c 的 logon() 第 12 行,物件: clone/user/login#0
呼叫来自:adm/daemons/logind.c 的 create() 第 71 行,物件: adm/daemons/logind
呼叫来自:adm/single/master.c 的 valid_seteuid() 第 273 行,物件: adm/single/master
呼叫来自:adm/daemons/securityd.c 的 valid_seteuid() 第 734 行,物件: adm/daemons/securityd 你编译mudos的时候是不是没define seteuid那个选项。编译之前需要仔细研究options.h,根据mudlib的类型和需要进行修改 ...还有options.h需要修改??确实不知道。我再看看,感谢。
有关于修改options.h这个文件的教程或者说明吗?
再次感谢icer 我尝试修改了options.h里面的PACKAGE_UIDS项为#undef PACKAGE_UIDS
然后重新编译,结果提示更不好了。好像这个PACKAGE_UIDS必须是#define吧。。。
还有什么需要在options.h里面调整的吗?
----------------------------------------------------------------------------
侠客行 (MudOS v22pre11) starting up on Linux - Thu Jul 15 23:06:24 2010
Connected to address server on localhost port 5555
include/globals.h line 103: Warning: redefinition of #define ROOM
adm/simul_efun/object.c line 60: Undefined function getuid
adm/simul_efun/object.c line 60: Type of returned value doesn't match function return type ( unknown vs string )
adm/simul_efun/object.c line 79: Undefined function geteuid
adm/simul_efun/path.c line 27: Bad type for argument 1 of user_path ( string vs unknown )
adm/simul_efun/path.c line 29: Bad type for argument 1 of user_path ( string vs unknown )
adm/simul_efun/file.c line 13: Undefined function seteuid
No error handler for error: *Error in loading object '/adm/single/simul_efun'
program: (none), object: (none), file: (none)
The simul_efun (/adm/single/simul_efun) and master (/adm/single/master) objects must be loadable. 下面两个和UID有关的都设置了,提示还是和最初一样。
#define PACKAGE_UIDS
#define AUTO_SETEUID
我把simul_efun.c也贴出来,大侠给看看有问题没有。关键是这些东西在windows可以运行。。。。到linux就不灵了
----------------------------------------------------------------------------
侠客行 (MudOS v22pre11) starting up on Linux - Thu Jul 15 23:06:24 2010
Connected to address server on localhost port 5555
include/globals.h line 103: Warning: redefinition of #define ROOM
adm/simul_efun/object.c line 60: Undefined function getuid
adm/simul_efun/object.c line 60: Type of returned value doesn't match function return type ( unknown vs string )
adm/simul_efun/object.c line 79: Undefined function geteuid
adm/simul_efun/path.c line 27: Bad type for argument 1 of user_path ( string vs unknown )
adm/simul_efun/path.c line 29: Bad type for argument 1 of user_path ( string vs unknown )
adm/simul_efun/file.c line 13: Undefined function seteuid
No error handler for error: *Error in loading object '/adm/single/simul_efun'
program: (none), object: (none), file: (none)
The simul_efun (/adm/single/simul_efun) and master (/adm/single/master) objects must be loadable. /*
* PACKAGE_UIDS: define this if you want a driver that does use uids.
*
*/
#undef PACKAGE_UIDS
/* AUTO_SETEUID: when an object is created it's euid is automatically set to
* the equivalent of seteuid(getuid(this_object())). undef AUTO_SETEUID
* if you would rather have the euid of the created object be set to 0.
*/
#define AUTO_SETEUID
/* AUTO_TRUST_BACKBONE: define this if you want objects with the backbone
* uid to automatically be trusted and to have their euid set to the uid of
* the object that forced the object's creation.
*/
#define AUTO_TRUST_BACKBONE icer 大侠,如果用按照你上面的配置用#undef PACKAGE_UIDS,直接就提示下面信息了
Connected to address server on localhost port 5555
include/globals.h line 103: Warning: redefinition of #define ROOM
adm/simul_efun/object.c line 60: Undefined function getuid
adm/simul_efun/object.c line 60: Type of returned value doesn't match function return type ( unknown vs string )
adm/simul_efun/object.c line 79: Undefined function geteuid
adm/simul_efun/path.c line 27: Bad type for argument 1 of user_path ( string vs unknown )
adm/simul_efun/path.c line 29: Bad type for argument 1 of user_path ( string vs unknown )
adm/simul_efun/file.c line 13: Undefined function seteuid
No error handler for error: *Error in loading object '/adm/single/simul_efun'
program: (none), object: (none), file: (none)
The simul_efun (/adm/single/simul_efun) and master (/adm/single/master) objects must be loadable. 我理解这个adm/simul_efun/object.c line 60: Undefined function getuid
是不是就是因为#undef PACKAGE_UIDS???? 我理解PACKAGE_UIDS一定要define,否则就回提示adm/simul_efun/object.c line 60: Undefined function getuid
和adm/simul_efun/object.c line 79: Undefined function geteuid。
如果PACKAGE_UIDS是define后,可以出现
Connected to address server on localhost port 5555
include/globals.h line 103: Warning: redefinition of #define ROOM
]simul_efun loaded successfully.
include/globals.h line 103: Warning: redefinition of #define ROOM
Loading preloaded files ...
Initializations complete.
Accepting connections on port 8888.
说明已经启动了一部分,并且在8888端口监听了。但是连接8888的时候还是出现错误。
执行时段错误:*Object cannot be loaded during compilation.
程式:adm/single/simul_efun.c 第 12 行
物件: adm/single/simul_efun
呼叫来自:adm/single/master.c 的 connect() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 CATCH() 第 17 行,物件: adm/single/master
呼叫来自:adm/single/master.c 的 log_error() 第 124 行,物件: adm/single/master
呼叫来自:adm/single/simul_efun.c 的 wizardp() 第 12 行,物件: adm/single/simul_efun
include/globals.h line 103: Warning: redefinition of #define ROOM icer老大,我把simul_efun.c和master.c也放上来,您给看看什么问题。
这两个文件在windows下面的mudos.exe是可以跑起来的 err = catch(login_ob = new(LOGIN_OB));
这句话引发的错误 err = catch(login_ob = new(LOGIN_OB));
这句话引发的错误,请问如何修改呢?
我看ES2的代码是err = catch(ob = new(LOGIN_OB));
但是好像只是变量名不同,应该不是这个问题呀。。。。难道是catch函数问题?
[[i] 本帖最后由 dreamnb 于 2010-7-16 11:04 AM 编辑 [/i]] 应该是和lib无关,还是mudos option的问题。 把你的options.h贴出来吧 恩。确实是options.h。今天请教了下 黄小邪(北美xkx开发的wiz)。
告诉我是#define CAST_CALL_OTHERS选项,我原来设置成了undef了。
不过还是没有顺利运行起来,又提示新的错误了。
include/globals.h line 103: Warning: redefinition of #define ROOM
adm/simul_efun/chinese.c line 5: Type of returned value doesn't match function return type ( unknown vs string )
adm/simul_efun/chinese.c line 10: Type of returned value doesn't match function return type ( unknown vs string )
adm/simul_efun/wizard.c line 6: Type of returned value doesn't match function return type ( unknown vs string )
adm/simul_efun/wizard.c line 12: Bad left argument to '>' : "unknown "
adm/simul_efun/wizard.c line 17: Type of returned value doesn't match function return type ( unknown vs int )
adm/simul_efun/message.c line 11: Bad assignment ( string vs unknown ).
No error handler for error: *Error in loading object '/adm/single/simul_efun'
program: (none), object: (none), file: (none)
The simul_efun (/adm/single/simul_efun) and master (/adm/single/master) objects must be loadable.
~
目前登陆都剩下这些错误了,估计还是和options.h有关系。。。。不过我还在找,希望这里的高手也指点指点 options.h我也发上来吧 你直接用一份标准的xkx的mudlib用的 options吧
页:
[1]
2