Welcome to the Builder Academy

Question a lot undefined-reference-errors compiling tba 3.64 under cygwin

More
30 Mar 2013 21:38 #1752 by felipevr
Hello there,

I was changing some things in src. After some well done changes, when I ran make again, I got a lot of problems and errors. I replaced by the older src, that ran without problem but the problem continued.

I unpack tba again, replacing the tba's src for my older that work properly. I replaced so for the problematic src without any problem (I ran the mud and all to test).
But when I change a thing, a little thing, I got the error again.
Can someone give me some help?

Follow the error:
mud_event.o:mud_event.c:(.data+0x1c): undefined reference to `_event_whirlwind'
interpreter.o:interpreter.c:(.rdata+0x1cd4): undefined reference to `_do_gen_tog'
interpreter.o:interpreter.c:(.rdata+0x1d04): undefined reference to `_do_assist'
interpreter.o:interpreter.c:(.rdata+0x1d7c): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x1d94): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x1dac): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x1dc4): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x1ddc): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x1df4): more undefined references to `_do_g
en_tog' follow
interpreter.o:interpreter.c:(.rdata+0x1e54): undefined reference to `_do_backsta
b'
interpreter.o:interpreter.c:(.rdata+0x1e84): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x1e9c): undefined reference to `_do_bash'
interpreter.o:interpreter.c:(.rdata+0x1eb4): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x1ecc): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x1ee4): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x1f5c): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x2004): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x20ac): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x210c): undefined reference to `_do_display
'
interpreter.o:interpreter.c:(.rdata+0x228c): undefined reference to `_do_flee'
interpreter.o:interpreter.c:(.rdata+0x237c): undefined reference to `_do_group'
interpreter.o:interpreter.c:(.rdata+0x240c): undefined reference to `_do_happyho
ur'
interpreter.o:interpreter.c:(.rdata+0x2454): undefined reference to `_do_hide'
interpreter.o:interpreter.c:(.rdata+0x24cc): undefined reference to `_do_hit'
interpreter.o:interpreter.c:(.rdata+0x2514): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x255c): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x2604): undefined reference to `_do_kill'
interpreter.o:interpreter.c:(.rdata+0x261c): undefined reference to `_do_kick'
interpreter.o:interpreter.c:(.rdata+0x2694): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x270c): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x27cc): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x27e4): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x27fc): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x2814): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x282c): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x2844): more undefined references to `_do_g
en_tog' follow
interpreter.o:interpreter.c:(.rdata+0x28d4): undefined reference to `_do_order'
interpreter.o:interpreter.c:(.rdata+0x28ec): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x29c4): undefined reference to `_do_practic
e'
interpreter.o:interpreter.c:(.rdata+0x2a54): undefined reference to `_do_display
'
interpreter.o:interpreter.c:(.rdata+0x2acc): undefined reference to `_do_use'
interpreter.o:interpreter.c:(.rdata+0x2b14): undefined reference to `_do_quit'
interpreter.o:interpreter.c:(.rdata+0x2b2c): undefined reference to `_do_quit'
interpreter.o:interpreter.c:(.rdata+0x2bbc): undefined reference to `_do_use'
interpreter.o:interpreter.c:(.rdata+0x2bd4): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x2c1c): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x2c34): undefined reference to `_do_report'
interpreter.o:interpreter.c:(.rdata+0x2c64): undefined reference to `_do_rescue'
interpreter.o:interpreter.c:(.rdata+0x2cf4): undefined reference to `_do_gen_tog
'
interpreter.o:interpreter.c:(.rdata+0x2dcc): undefined reference to `_do_save'
interpreter.o:interpreter.c:(.rdata+0x2dfc): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x2f1c): undefined reference to `_do_sneak'
interpreter.o:interpreter.c:(.rdata+0x2f64): undefined reference to `_do_split'
interpreter.o:interpreter.c:(.rdata+0x2fac): undefined reference to `_do_steal'
interpreter.o:interpreter.c:(.rdata+0x306c): undefined reference to `_do_title'
interpreter.o:interpreter.c:(.rdata+0x31bc): undefined reference to `_do_use'
interpreter.o:interpreter.c:(.rdata+0x31ec): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x321c): undefined reference to `_do_visible
'
interpreter.o:interpreter.c:(.rdata+0x3324): undefined reference to `_do_whirlwi
nd'
interpreter.o:interpreter.c:(.rdata+0x336c): undefined reference to `_do_not_her
e'
interpreter.o:interpreter.c:(.rdata+0x3680): undefined reference to `_do_not_her
e'
fight.o: In function `damage':
/cygdrive/c/Users/acer/Dropbox/varios rpg/clipboard/tbamud-3.64/src/fight.c:705:
undefined reference to `_do_flee'
/cygdrive/c/Users/acer/Dropbox/varios rpg/clipboard/tbamud-3.64/src/fight.c:710:
undefined reference to `_do_flee'
/cygdrive/c/Users/acer/Dropbox/varios rpg/clipboard/tbamud-3.64/src/fight.c:717:
undefined reference to `_do_flee'
/cygdrive/c/Users/acer/Dropbox/varios rpg/clipboard/tbamud-3.64/src/fight.c:761:
undefined reference to `_do_split'
fight.o: In function `perform_violence':
/cygdrive/c/Users/acer/Dropbox/varios rpg/clipboard/tbamud-3.64/src/fight.c:942:
undefined reference to `_do_assist'
collect2: ld returned 1 exit status
Makefile:43: recipe for target `../bin/circle' failed
make[1]: *** [../bin/circle] Error 1
make[1]: Saindo do diretório `/cygdrive/c/Users/acer/Dropbox/varios rpg/clipboard
/tbamud-3.64/src'
Makefile:30: recipe for target `all' failed
make: *** [all] Error 2


I never work with many files here!
I use cygwin with gcc4.5.2 and win7-64bits.
thank you all!

PS:I check and check again for ; and ( or ), but all look like ok.

Please Log in or Create an account to join the conversation.

More
30 Mar 2013 21:47 #1753 by JTP
You need to post the code you added or changed

Please Log in or Create an account to join the conversation.

More
01 Apr 2013 16:55 #1760 by zusuk
did you run the configure file?

Website
www.luminariMUD.com

Main Game Port
luminariMUD.com:4100

Please Log in or Create an account to join the conversation.

More
01 Apr 2013 19:01 #1762 by felipevr
yeah, I ran the configure file before compile the code for the first time.

my change was:

added to utils.h:
/** What ch is currently resting on. */
#define RESTING(ch) ((ch)->char_specials.furniture)
/** Who is resting next to ch, if anyone. */
#define NEXT_RESTING(ch) ((ch)->char_specials.next_resting_in_furniture)
/** Who is resting on this obj */
#define OBJ_REST_IN_BY(obj) ((obj)->resting_here)
/** What ch is currently sleeping on. */
#define SLEEPING(ch) ((ch)->char_specials.furniture)
/** Who is sleeping next to ch, if anyone. */
#define NEXT_SLEEPING(ch) ((ch)->char_specials.next_sleeping_in_furniture)
/** Who is sleeping on this obj */
#define OBJ_SLEPT_IN_BY(obj) ((obj)->sleeping_here)

*I change next_in_furniture to next_sitting_in_furniture to make sense

to structs.h:
in struct char_special_data
struct char_data *next_sitting_in_furniture; /**< Next person sitting, else NULL */
struct char_data *next_resting_in_furniture; /**< Next person resting , else NULL */
struct char_data *next_sleeping_in_furniture; /**< Next person sleeping , else NULL */

(I don't add resting/sleeping_where like sitting_where cause I didn't implement the properly changes to do_rest and do_sleep)



and the method do_sit, at act.moviment.c:
ACMD(do_sit)
{
char arg[MAX_STRING_LENGTH];
struct obj_data *furniture;
struct char_data *tempch;
int found;

one_argument(argument, arg);

if (!*arg)
found = -1;
if (!(furniture = get_obj_in_list_vis(ch, arg, NULL, world[ch->in_room].contents)))
found = 0;
else
found = 1;

switch (GET_POS(ch)) {
case POS_STANDING:
if (found == -1) {
send_to_char(ch, "You sit down.\r\n");
act("$n sits down.", FALSE, ch, 0, 0, TO_ROOM);
GET_POS(ch) = POS_SITTING;
} else if (found == 0) {
send_to_char(ch, "Sentar onde?\r\n");
} else {
if (GET_OBJ_TYPE(furniture) != ITEM_FURNITURE) {
send_to_char(ch, "You can't sit on that!\r\n");
return;
} else if (GET_OBJ_VAL(furniture, 1) > GET_OBJ_VAL(furniture, 0)) {
/* Val 1 is current number sitting, 0 is max in sitting. */
act("$p looks like it's all full.", TRUE, ch, furniture, 0, TO_CHAR);
log("SYSERR: Furniture %d holding too many people.", GET_OBJ_VNUM(furniture));
return;
} else if (GET_OBJ_VAL(furniture, 1) == GET_OBJ_VAL(furniture, 0)) {
act("There is no where left to sit upon $p.", TRUE, ch, furniture, 0, TO_CHAR);
return;
} else {
if (OBJ_SAT_IN_BY(furniture) == NULL)
OBJ_SAT_IN_BY(furniture) = ch;
for (tempch = OBJ_SAT_IN_BY(furniture); tempch != ch ; tempch = NEXT_SITTING(tempch)) {
if (NEXT_SITTING(tempch))
continue;
NEXT_SITTING(tempch) = ch;
}
act("You sit down upon $p.", TRUE, ch, furniture, 0, TO_CHAR);
act("$n sits down upon $p.", TRUE, ch, furniture, 0, TO_ROOM);
SITTING(ch) = furniture;
NEXT_SITTING(ch) = NULL;
GET_OBJ_VAL(furniture, 1) += 1;
GET_POS(ch) = POS_SITTING;
}
}
break;
case POS_SITTING:
send_to_char(ch, "You're sitting already.\r\n");
break;
case POS_RESTING:
send_to_char(ch, "You stop resting, and sit up.\r\n");
act("$n stops resting.", TRUE, ch, 0, 0, TO_ROOM);
GET_POS(ch) = POS_SITTING;
break;
case POS_SLEEPING:
send_to_char(ch, "You have to wake up first.\r\n");
break;
case POS_FIGHTING:
send_to_char(ch, "Sit down while fighting? Are you MAD?\r\n");
break;
default:
send_to_char(ch, "You stop floating around, and sit down.\r\n");
act("$n stops floating around, and sits down.", TRUE, ch, 0, 0, TO_ROOM);
GET_POS(ch) = POS_SITTING;
break;
}
}
I just change to know when people don't find anything to sit down and informe it.

Please Log in or Create an account to join the conversation.

More
03 Apr 2013 14:31 #1773 by zusuk
Hey in the future so we can read the code easier, would you mind using the "Code Display" option in the Boardcode.

It is very hard to tell what is going on for me, I'm guessing you just got a typo somewhere... perhaps missing a comma or semicolon somewhere.

Website
www.luminariMUD.com

Main Game Port
luminariMUD.com:4100

Please Log in or Create an account to join the conversation.

More
06 Apr 2013 23:51 #1826 by thomas
Just for the record; did you try "make clean install" ?

Please Log in or Create an account to join the conversation.

Time to create page: 0.200 seconds