EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Linux Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=588)
-   -   Error trying to compile bots (https://www.eqemulator.org/forums/showthread.php?t=34680)

joligario 01-09-2012 10:12 PM

I was compiling fine with 5.6 as well. Obviously didn't try bots back then. There shouldn't be any difference. I'm thinking something got changed accidentally (gotta love vi ...).

EDIT: Did you recently try to upgrade perl or compile your own?

druid64 01-10-2012 10:22 AM

I just yum update to make sure it was current

kalua 01-20-2012 08:03 PM

I don't have CentOS, but I did test updating to the latest source code (2097) and compiling on my openSUSE server.

It's a 64-bit OS, so my makefiles force 32-bit compile mode for gcc, g++, etc. with the -m32 option. gcc is version 4.6.2

Bots is compiling fine against perl 5.10. I have modified the makefiles to use a path containing perl 5.10 32-bit. (Native perl in my OS is 5.14)

The only thing in your makefile.common that differs from mine is that I added the bot.o and botspellsai.o to the last line after QuestParserCollection.o. I really don't think that should matter, but I mention it just in case.

druid64 01-20-2012 09:17 PM

I fixed mine eventually. It was just the zones file that weren't compiling. The world files were fine. I had to install a separate higher version of my gcc compiler. I had to google a repo and add it to the yum repo file as well.
Code:

yum gcc44 gcc44-c++
The version that was installed gcc 4.4 is separate but compatible rather than overwriting the existing gcc version 4.1.2 .

I then had change the /zone/makefile to recognize the gcc44 version

Code:

HCC=$(shell ccache -V 2>/dev/null)
ifneq (,$(findstring version,$(HCC)))
        CC=ccache gcc44
else
      CC=gcc44
endif

OUT=-o
LINKOUT=-o
NOLINK=-c
LINKER=gcc44
MYSQL_FLAGS=$(shell mysql_config --cflags)
MYSQL_LIB=$(shell mysql_config --libs)
DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DBOTS
#try commenting out the following three lines to disable embedded perl
PERL_FLAGS=$(shell perl -MExtUtils::Embed -e ccopts)
PERL_LIB=$(shell perl -MExtUtils::Embed -e ldopts)
DFLAGS+=-DEMBPERL -DEMBPERL_PLUGIN -DHAS_UNION_SEMUN
WFLAGS=-Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wno-deprecated  -Wcomment -Wcast-align
COPTS=$(WFLAGS) -O -g -march=i686 -pthread -pipe -D_GNU_SOURCE -DINVERSEXY -DFX -DZONE $(DFLAGS) $(MYSQL_FLAGS) $(PERL_FLAGS) -DBOTS
LINKOPTS=$(COPTS) -rdynamic -L. -lstdc++ -ldl $(MYSQL_LIB) $(PERL_LIB)

all: zone

include .depend

include makefile.common

.depend depend:
        for f in $(SF); \
        do \
                i=`echo $$f | sed -e 's#.obj/#../common/#g' -e 's/\.o/.cpp/g' `; \
                gcc -MM $(COPTS) $$i | sed "s#^[^ ]*:#$$f:#g"; \
        done  >.depend

wine:
        $(MAKE) -f makefile.wine

I also moved the o files to the end of the makefile.common and then it compiled fine.

druid64 01-26-2012 12:26 PM

Actually this now seems to be the issue of my LD and zone disconnects so not really a fix.


All times are GMT -4. The time now is 08:00 PM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.