Strange syntax error problem with mmorpg-framework

Donald Duck alex@root1.de
Mon Mar 17 07:49:00 GMT 2008


Hi there,

I want to compile a big project from sourceforge.net (a mmorpg server
framework). But since a change in a source-file, gcc doesn't compile it at
all. I already asked on the project dev's forum, but the sayed, that I have
to use gcc 4.x.y ... This is quite strange, because I'm already using gcc
4.1.1-15.

Okay, here are the details:

To get the system compiled, i have to do the following:

----quote-----
autoreconf --install --force
./configure --prefix=/opt/mangos/mangos_
--sysconfdir=/opt/mangos/mangos_/etc --enable-cli --enable-ra
--datadir=/opt/mangos/mangos_
make > make.log 2>&1
----/quote-----

I used this lines also with earlier revisions and they always worked fine.

autoreconf is working, configure also. But make exits with this lines:

----quote----
   defines private constructors and has no friends
if g++ -DHAVE_CONFIG_H -I. -I. -I../..  -I/usr/include/mysql 
-I../../src/shared -I. -I./../../dep/include -I./../framework -I./../shared
-I./../shared/vmap -I./../realmd   -DENABLE_RA -DENABLE_CLI -DDO_MYSQL -g
-O2 -MT Player.o -MD -MP -MF ".deps/Player.Tpo" -c -o Player.o Player.cpp; \
then mv -f ".deps/Player.Tpo" ".deps/Player.Po"; else rm -f
".deps/Player.Tpo"; exit 1; fi
In file included from ../../src/shared/Database/DBCStores.h:25,
                 from ../../src/shared/Database/DatabaseEnv.h:26,
                 from Player.cpp:21:
../../src/shared/Database/DBCStructure.h:409: warning: `struct SpellEntry'
only
   defines private constructors and has no friends
Player.cpp: In member function `bool Player::UpdateSkill(unsigned int)':
Player.cpp:4366: error: syntax error before `|' token
Player.cpp:4366: error: syntax error before `)' token
Player.cpp: In member function `bool Player::UpdateSkillPro(short unsigned
int,
   int)':
Player.cpp:4475: error: syntax error before `|' token
Player.cpp:4475: error: syntax error before `)' token
Player.cpp: In member function `void Player::ModifySkillBonus(unsigned int,
   int, bool)':
Player.cpp:4588: error: syntax error before `|' token
Player.cpp:4588: error: syntax error before `)' token
Player.cpp: In member function `void Player::UpdateMaxSkills()':
Player.cpp:4613: error: syntax error before `|' token
Player.cpp:4613: error: syntax error before `)' token
Player.cpp: In member function `void
Player::UpdateSkillsToMaxSkillsForLevel()
   ':
Player.cpp:4631: error: syntax error before `|' token
Player.cpp:4631: error: syntax error before `)' token
Player.cpp: In member function `void Player::SetSkill(unsigned int, short
   unsigned int, short unsigned int)':
Player.cpp:4652: error: syntax error before `|' token
Player.cpp:4652: error: syntax error before `)' token
Player.cpp: At global scope:
Player.cpp:4675: error: syntax error before `else'
Player.cpp:4678: error: syntax error before `;' token
Player.cpp:4678: error: syntax error before `++' token
Player.cpp:4692: error: `i' was not declared in this scope
Player.cpp:4692: error: `currVal' was not declared in this scope
Player.cpp:4692: error: syntax error before `|' token
Player.cpp:4692: error: ISO C++ forbids declaration of `SetUInt32Value' with
no
   type
Player.cpp:4692: error: initializer list being treated as compound
expression
Player.cpp:4692: error: syntax error before `<<' token
Player.cpp:4695: error: `i' was not declared in this scope
Player.cpp:4695: error: ISO C++ forbids declaration of `SetUInt32Value' with
no
   type
Player.cpp:4695: error: redefinition of `int SetUInt32Value'
Player.cpp:4692: error: `int SetUInt32Value' previously defined here
Player.cpp:4695: error: initializer list being treated as compound
expression
Player.cpp:4698: error: syntax error before `const'
Player.cpp:4699: error: syntax error before `!=' token
Player.cpp:4704: error: syntax error before `const'
Player.cpp:4705: error: syntax error before `!=' token
Player.cpp: In member function `uint16 Player::GetMaxSkillValue(unsigned
int)
   const':
Player.cpp:4753: error: syntax error before `>>' token
Player.cpp: In member function `uint16 Player::GetPureMaxSkillValue(unsigned
   int) const':
Player.cpp:4767: error: syntax error before `>>' token
Player.cpp: In member function `uint16 Player::GetBaseSkillValue(unsigned
int)
   const':
Player.cpp:4781: error: syntax error before `>>' token
make[3]: *** [Player.o] Error 1
make[3]: Leaving directory `/opt/mangos/mangos-src/src/game'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/mangos/mangos-src/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/mangos/mangos-src'
make: *** [all] Error 2
----/quote----

Okay, I looked at the source . I'm not very good at c/c++ programming, but I
cannot find a syntax error. Also many other people in the dev's forum don't
have this problem. So I compared the different sourcecode revisions. I found
out, that the problems comes with revision 5126. Please have a look at the
following diff:
http://www.mangosproject.org/trac/changeset?old_path=trunk%2Fsrc%2Fgame%2FPlayer.cpp&old=5122&new_path=trunk%2Fsrc%2Fgame%2FPlayer.cpp&new=5126
player.cpp source diff rev5120->rev5126 

rev5120 compiles fine, rev5126 which has those changes, exits with the above
mentioned lines. 

I used debian sarge with gcc 4.1.1-15
I used SuSE linux 9.3 prof with gcc 4.1.1

Both aren't able to compile rev5126 and newer. Revisions up to 5126 are
working ...So it has to do with the changes in player.cpp

I would be pleased if someone could tell me if this is a gcc problem or
whatever this problems causes.
If you need further information, please let me know ...

with kind regards,
Alex
-- 
View this message in context: http://www.nabble.com/Strange-syntax-error-problem-with-mmorpg-framework-tp16089740p16089740.html
Sent from the gcc - Help mailing list archive at Nabble.com.



More information about the Gcc-help mailing list