PDA

View Full Version : Revisions from 1015 to current


prickle
10-17-2009, 10:03 AM
Hi all,

Since SVN revision 1015 the compiles have been failing with:
QGlobals.cpp:23: warning: suggest parentheses around && within ||
QGlobals.cpp: In member function ‘void QGlobalCache::LoadByNPCID(uint32)’:
QGlobals.cpp:100: error: ‘atoi’ was not declared in this scope
QGlobals.cpp: In member function ‘void QGlobalCache::LoadByCharID(uint32)’:
QGlobals.cpp:119: error: ‘atoi’ was not declared in this scope
QGlobals.cpp: In member function ‘void QGlobalCache::LoadByZoneID(uint32)’:
QGlobals.cpp:138: error: ‘atoi’ was not declared in this scope
QGlobals.cpp: In member function ‘void QGlobalCache::LoadByGlobalContext()’:
QGlobals.cpp:156: error: ‘atoi’ was not declared in this scope
make[1]: *** [QGlobals.o] Error 1
Anyone else seeing these errors and/or know how to fix the error to allow successful compile?

pfyon
10-17-2009, 03:07 PM
Same for me. Tried adding #include "stdlib.h" to QGlobals.cpp and just ended up with more errors down the line (involving Bot:: stuff).

Shin Noir
10-17-2009, 03:37 PM
What compiler are you using? VS 2008? GCC?
I just compiled it in VS 2008, using rev 1020 (Not 1015, but looking at rev log I don't see qglobals being changed from rev 1015 to 1020).
I'm thinking that a GCC issue, with the formatting of errors.

========== Build: 5 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

I think KLS will glance at this and solve it in a matter of seconds! So I won't delve too deeply!

KLS
10-17-2009, 04:18 PM
It's more an issue with microsoft's compiler being significantly smarter than GNU's :rolleyes:

erde
10-17-2009, 04:32 PM
QGlobals.cpp should include stdlib.h

#include "../common/debug.h"
#include "../common/MiscFunctions.h"
#include "QGlobals.h"
#include "zonedb.h"

#include <stdlib.h>

void QGlobalCache::AddGlobal(uint32 id, QGlobal global)

prickle
10-17-2009, 05:29 PM
Rev all revs after 1015 fail compile for me...

I'm using:

$ gcc --version
gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

==========================

I'll add the <stdlib.h> to the file and report back in a few...

prickle
10-17-2009, 05:34 PM
adding
#include <stdlib.h>
to the QGlobals.cpp file allowed me to complete the compile...

Thanks folks!

pfyon
10-17-2009, 06:10 PM
Getting a different error with rev 1021:


client.o: In function `memset':
/usr/include/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
/usr/include/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
entity.o: In function `EntityList::MobProcess()':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/entity.cpp:493: undefined reference to `EntityList::RemoveBot(unsigned short)'
entity.o: In function `EntityList::RemoveEntity(unsigned short)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/entity.cpp:2308: undefined reference to `EntityList::RemoveBotRaid(unsigned short)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/entity.cpp:2310: undefined reference to `EntityList::RemoveBot(unsigned short)'
spells.o: In function `Mob::SpellFinished(unsigned short, Mob*, unsigned short, unsigned short, unsigned int)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/spells.cpp:1563: undefined reference to `Bot::DoFinishedSpellGroupTarget(unsigned short, Mob*, unsigned short, bool&)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/spells.cpp:1497: undefined reference to `Bot::DoFinishedSpellSingleTarget(unsigned short, Mob*, unsigned short, bool&)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/spells.cpp:1529: undefined reference to `Bot::DoFinishedSpellAETarget(unsigned short, Mob*, unsigned short, bool&)'
command.o: In function `command_bot(Client*, Seperator const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/command.cpp:10598: undefined reference to `Bot::ProcessBotCommands(Client*, Seperator const*)'
client_packet.o: In function `Client::Handle_OP_InspectRequest(EQApplicationPac ket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:5724: undefined reference to `Bot::ProcessBotInspectionRequest(Bot*, Client*)'
client_packet.o: In function `Client::Handle_OP_GroupInvite2(EQApplicationPacke t const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:5403: undefined reference to `Bot::ProcessBotGroupInvite(Client*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
client_packet.o: In function `Client::Handle_OP_Camp(EQApplicationPacket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:2829: undefined reference to `Bot::DestroyBotObjects(Client*)'
client_packet.o: In function `Client::Handle_OP_TradeAcceptClick(EQApplicationP acket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:4288: undefined reference to `Bot::FinishTrade(Client*, Bot::botTradeType)'
aggro.o: In function `Mob::IsAttackAllowed(Mob*, bool)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/aggro.cpp:671: undefined reference to `Bot::IsBotAttackAllowed(Mob*, Mob*, bool&)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/aggro.cpp:671: undefined reference to `Bot::IsBotAttackAllowed(Mob*, Mob*, bool&)'
zoning.o: In function `Client::Handle_OP_ZoneChange(EQApplicationPacket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/zoning.cpp:38: undefined reference to `Bot::DestroyBotObjects(Client*)'
collect2: ld returned 1 exit status
make[1]: *** [zone] Error 1
make[1]: Leaving directory `/home/eqemu/source/svn/trunk/EQEmuServer/zone'
make: *** [all] Error 2


This is after running make clean to force it to recompile everything.

AndMetal
10-17-2009, 06:25 PM
Getting a different error with rev 1021:


client.o: In function `memset':
/usr/include/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
/usr/include/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
entity.o: In function `EntityList::MobProcess()':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/entity.cpp:493: undefined reference to `EntityList::RemoveBot(unsigned short)'
entity.o: In function `EntityList::RemoveEntity(unsigned short)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/entity.cpp:2308: undefined reference to `EntityList::RemoveBotRaid(unsigned short)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/entity.cpp:2310: undefined reference to `EntityList::RemoveBot(unsigned short)'
spells.o: In function `Mob::SpellFinished(unsigned short, Mob*, unsigned short, unsigned short, unsigned int)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/spells.cpp:1563: undefined reference to `Bot::DoFinishedSpellGroupTarget(unsigned short, Mob*, unsigned short, bool&)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/spells.cpp:1497: undefined reference to `Bot::DoFinishedSpellSingleTarget(unsigned short, Mob*, unsigned short, bool&)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/spells.cpp:1529: undefined reference to `Bot::DoFinishedSpellAETarget(unsigned short, Mob*, unsigned short, bool&)'
command.o: In function `command_bot(Client*, Seperator const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/command.cpp:10598: undefined reference to `Bot::ProcessBotCommands(Client*, Seperator const*)'
client_packet.o: In function `Client::Handle_OP_InspectRequest(EQApplicationPac ket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:5724: undefined reference to `Bot::ProcessBotInspectionRequest(Bot*, Client*)'
client_packet.o: In function `Client::Handle_OP_GroupInvite2(EQApplicationPacke t const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:5403: undefined reference to `Bot::ProcessBotGroupInvite(Client*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
client_packet.o: In function `Client::Handle_OP_Camp(EQApplicationPacket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:2829: undefined reference to `Bot::DestroyBotObjects(Client*)'
client_packet.o: In function `Client::Handle_OP_TradeAcceptClick(EQApplicationP acket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/client_packet.cpp:4288: undefined reference to `Bot::FinishTrade(Client*, Bot::botTradeType)'
aggro.o: In function `Mob::IsAttackAllowed(Mob*, bool)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/aggro.cpp:671: undefined reference to `Bot::IsBotAttackAllowed(Mob*, Mob*, bool&)'
/home/eqemu/source/svn/trunk/EQEmuServer/zone/aggro.cpp:671: undefined reference to `Bot::IsBotAttackAllowed(Mob*, Mob*, bool&)'
zoning.o: In function `Client::Handle_OP_ZoneChange(EQApplicationPacket const*)':
/home/eqemu/source/svn/trunk/EQEmuServer/zone/zoning.cpp:38: undefined reference to `Bot::DestroyBotObjects(Client*)'
collect2: ld returned 1 exit status
make[1]: *** [zone] Error 1
make[1]: Leaving directory `/home/eqemu/source/svn/trunk/EQEmuServer/zone'
make: *** [all] Error 2


This is after running make clean to force it to recompile everything.

Sounds like you're trying to compile with bots, but are probably missing the references to bot.o & botRaids.o in the makefile.common file for zone (http://code.google.com/p/projecteqemu/source/browse/trunk/EQEmuServer/zone/makefile.common#4).

pfyon
10-17-2009, 06:42 PM
Aha, I didn't notice the makefile had been updated and replaced my original one that did have bots.o and botRaids.o.

Thanks.