Another newb with a Cygwin compiling error.

Posted by Leprakon on Thu 10 Jul 2003 12:46 AM — 5 posts, 19,405 views.

#0
I am (like everyone else) having problems compiling SMAUG with Cygwin. I read the page on 'how to compile' on the gammon website, and i followed the directions to the letter (i already had cygwin installed, with gcc, make, crypt, etc). I have read all the posts from this site and kyndig.com on compiling with cygwin, and tried all the solutions i could find. this is what happened:

$ make
make smaug
make[1]: Entering directory `/home/nate/smaug/dist/src'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG act_comm.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG act_info.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG act_move.c
act_move.c:393:14: warning: trigraph ??> ignored
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG act_obj.c
act_obj.c: In function `can_layer':
act_obj.c:1389: warning: suggest explicit braces to avoid ambiguous `else'
act_obj.c: In function `do_auction':
act_obj.c:2651: warning: suggest explicit braces to avoid ambiguous `else'
act_obj.c:2675: warning: suggest explicit braces to avoid ambiguous `else'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG act_wiz.c
act_wiz.c:1637:49: warning: trigraph ??! ignored
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG boards.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG build.c
build.c: In function `fold_area':
build.c:6058: warning: suggest explicit braces to avoid ambiguous `else'
build.c:6061: warning: suggest explicit braces to avoid ambiguous `else'
build.c:6064: warning: suggest explicit braces to avoid ambiguous `else'
build.c:6070: warning: suggest explicit braces to avoid ambiguous `else'
build.c:6075: warning: suggest explicit braces to avoid ambiguous `else'
build.c:6078: warning: suggest explicit braces to avoid ambiguous `else'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG clans.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG comm.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG comments.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG const.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG db.c
db.c: In function `load_resets':
db.c:1594: warning: suggest explicit braces to avoid ambiguous `else'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG deity.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG fight.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG handler.c
handler.c: In function `get_eq_char':
handler.c:1335: warning: suggest explicit braces to avoid ambiguous `else'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG hashstr.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG ibuild.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG ident.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG interp.c
interp.c: In function `interpret':
interp.c:758: warning: int format, long int arg (arg 7)
interp.c:758: warning: int format, long int arg (arg 8)
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG magic.c
magic.c: In function `process_spell_components':
magic.c:985: warning: suggest explicit braces to avoid ambiguous `else'
magic.c:1003: warning: suggest explicit braces to avoid ambiguous `else'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG makeobjs.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG mapout.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG misc.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG mpxset.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG mud_comm.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG mud_prog.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG player.c
player.c:1024:18: warning: trigraph ??) ignored
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG polymorph.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG requests.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG reset.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG save.c
save.c: In function `load_char_obj':
save.c:949: warning: suggest explicit braces to avoid ambiguous `else'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG shops.c
shops.c: In function `appraise_all':
shops.c:1095: warning: suggest explicit braces to avoid ambiguous `else'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG skills.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG special.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG tables.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG track.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG update.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG grub.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG stat_obj.c
stat_obj.c:147:13: warning: extra tokens at end of #undef directive
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG ban.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG services.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG planes.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG imm_host.c
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG colorize.c
colorize.c: In function `load_colors':
colorize.c:39: warning: implicit declaration of function `strcpy'
rm -f smaug
gcc -lcrypt -lregex -o smaug act_comm.o act_info.o act_move.o act_obj.o act_
wiz.o boards.o build.o clans.o comm.o comments.o const.o db.o deity.o fight.o ha
ndler.o hashstr.o ibuild.o ident.o interp.o magic.o makeobjs.o mapout.o misc.o m
pxset.o mud_comm.o mud_prog.o player.o polymorph.o requests.o reset.o save.o sho
ps.o skills.o special.o tables.o track.o update.o grub.o stat_obj.o ban.o servic
es.o planes.o imm_host.o colorize.o
/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot fi
nd -lregex
collect2: ld returned 1 exit status
make[1]: *** [smaug] Error 1
make[1]: Leaving directory `/home/nate/smaug/dist/src'
make: *** [all] Error 2

I don't know what i should do. What should i do?

Thanks for the help!
#1
Also, i am running XP, if that matters, and the Cygwin source that i downloaded that wouldn't work was called - smaug1.4a_mxp.tgz
Amended on Thu 10 Jul 2003 12:52 AM by Leprakon
Australia Forum Administrator #2
There is really only one error - it can't find the regex library.


Edit Makefile, and make sure that there is no -lregex entry in it (which tells it to use the regex library).

There is only one use of regex in the entire SMAUG that I know of, in a small routine that checks for swear words, that you could comment out.
#3
I don't see -lregex in my makefile at all. This is my makefile:

CC = gcc
#PROF = -p
NOCRYPT =

# Uncomment the two lines below if compiling on a Solaris box
#SOLARIS_FLAG = -Dsun -DSYSV
#SOLARIS_LINK = -lnsl -lsocket

#Uncomment the line below if you are getting a line like:
#interp.c:757: warning: int format, time_t arg (arg 7)
#TIME = -DTIMEFORMAT

#Uncomment the line below if you are getting implicit decleration of re_exec
#REG = -DREGEX

#Uncomment the line below if you are getting undefined re_exec errors
#NEED_REG = -lgnuregex

#Uncomment the line below if you are getting undefined crypt errors
#NEED_CRYPT = -lcrypt

#DBUGFLG = -DREQUESTS

#Uncomment the line below if you want a performance increase though beware
#your core files may not be as much of a benefit if you do.
#OPT_FLAG = -finline-functions -funroll-loops -fdefer-pop -fstrength-reduce

C_FLAGS = $(OPT_FLAG) -O -g3 -Wall -Wuninitialized $(PROF) $(NOCRYPT) $(DBUGFLG) -DSMAUG $(SOLARIS_FLAG) $(TIME) $(REG)
L_FLAGS = $(OPT_FLAG) $(PROF) $(SOLARIS_LINK) $(NEED_CRYPT)

#Uncomment the next three comments below if you want to use IMC
#USE_IMC = -DUSE_IMC

#IMC_OFILES = imc.o imc-mail.o imc-interp.o imc-util.o imc-config.o \
# imc-events.o imc-version.o imc-mercbase.o ice.o icec.o icec-mercbase.o

#IMC_CFILES = imc.c imc-mail.c imc-interp.c imc-util.c imc-config.c \
# imc-events.c imc-version.c imc-mercbase.c ice.c icec.c icec-mercbase.c

O_FILES = act_comm.o act_info.o act_move.o act_obj.o act_wiz.o boards.o \
build.o clans.o comm.o comments.o const.o db.o deity.o fight.o \
handler.o hashstr.o ibuild.o ident.o interp.o magic.o makeobjs.o \
mapout.o misc.o mpxset.o mud_comm.o mud_prog.o player.o polymorph.o \
requests.o reset.o save.o shops.o skills.o special.o tables.o \
track.o update.o grub.o stat_obj.o ban.o services.o planes.o \
imm_host.o $(IMC_OFILES) colorize.o

C_FILES = act_comm.c act_info.c act_move.c act_obj.c act_wiz.c boards.c \
build.c clans.c comm.c comments.c const.c db.c deity.c fight.c \
handler.c hashstr.c ibuild.c ident.c interp.c magic.c makeobjs.c \
mapout.c misc.c mpxset.c mud_comm.c mud_prog.c player.c polymorph.c \
requests.c reset.c save.c shops.c skills.c special.c tables.c \
track.c update.c grub.c stat_obj.c ban.c services.c planes.c \
imm_host.c $(IMC_CFILES) colorize.c

H_FILES = mud.h bet.h imc-config.h imc-mercbase.h imc-mercdefs.h imc.h \
ice.h icec.h icec-mercbase.h

all:
make smaug

smaug: $(O_FILES)
rm -f smaug
$(CC) $(L_FLAGS) $(USE_IMC) -o smaug $(O_FILES)
chmod g+w smaug
chmod a+x smaug
chmod g+w $(O_FILES)

.c.o: mud.h
$(CC) -c $(C_FLAGS) $(USE_IMC) $<

clean:
rm -f *.o smaug *~


Am i missing it somewhere?
#4
Omg i am so stupid - this is what happened. I have seen on lots of threads here, lots of people had the same error i had, before i had it. I had tried getting rid of -lregex, but like i said, it wasn't there.

Until i realized i was editing the WRONG MAKEFILE. I was editing "makefile.unix"!

Anyway, i got rid of -lregex, and had to fix some other errors, but anyway, SMAUG compiled! Thanks for your help Nick