Sphereserver / Source

http://spherecommunity.net
Apache License 2.0
108 stars 58 forks source link

Build fails at: /src/common/CArray.h:779:34: error: use of undeclared identifier 'BadIndex' #134

Closed tylers-username closed 6 years ago

tylers-username commented 6 years ago

I am trying to build SphereServer on an OSX machine using CMAKE. My command is cmake --build /src --target spheresvrNightly -- -j 4

I've also tried with make NIGHTLY=1 -f makefile which outputs the same error.

This results in:

[  0%] Building CXX object CMakeFiles/spheresvrNightly.dir/graysvr/CBase.cpp.o
[  2%] Building CXX object CMakeFiles/spheresvrNightly.dir/graysvr/CAccount.cpp.o
[  2%] Building CXX object CMakeFiles/spheresvrNightly.dir/graysvr/CCharAct.cpp.o
[  2%] Building CXX object CMakeFiles/spheresvrNightly.dir/graysvr/CCharBase.cpp.o
clang: warning: argument unused during compilation: '-s' [-Wunused-command-line-argument]
clang: clangwarning: argument unused during compilation: '-s' [-Wunused-command-line-argument]
: warning: argument unused during compilation: '-s' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-s' [-Wunused-command-line-argument]
In file included from /Users/tyler/path/src/graysvr/CBase.cpp:1:
In file included from /Users/tyler/path/src/graysvr/graysvr.h:27:
In file included from /Users/tyler/path/src/common/../sphere/../common/graycom.h:150:
In file included from /Users/tyler/path/src/common/CEncrypt.h:9:
In file included from /Users/tyler/path/src/common/CScript.h:6:
/Users/tyler/path/src/common/CArray.h:779:34: error: use of undeclared identifier 'BadIndex'
                return STANDARD_CPLUSPLUS_THIS(BadIndex());

Any guidance would be much appreciated.

GitMadKing commented 6 years ago

i'm using debian 7 with a shell script made by me

#!/bin/bash
git clone https://github.com/SphereServer/Source.git
NUOVONOME=Source-$(date +%F-%H:%M)
NUOVOEMU=spheresvr-$(date +%F-%H:%M)
mv Source $NUOVONOME
cd $NUOVONOME
make NIGHTLY=1 -f makefile
mv spheresvr ../$NUOVOEMU
echo NUOVO EMULATORE CREATO: $NUOVOEMU

just execute it now, no error given

/home# ./ne
Cloning into 'Source'...
remote: Counting objects: 29185, done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 29185 (delta 33), reused 42 (delta 31), pack-reused 29127
Receiving objects: 100% (29185/29185), 145.61 MiB | 3.15 MiB/s, done.
Resolving deltas: 100% (22899/22899), done.
Current build revision: 507 (GIT hash: 17c3844)
Compiler flags: g++ -c -Wall -Wno-unknown-pragmas -Wno-unused-result -Wno-maybe-uninitialized -Wno-switch -Wno-invalid-offsetof  -pipe -s -fexceptions -fnon-call-exceptions -Os -fno-strict-aliasing -fno-omit-frame-pointer -ffast-math -march=i686 -m32 -L/usr/lib/mysql -D_MTNETWORK -D_NIGHTLYBUILD
 Compiling src/graysvr/CAccount.cpp
 Compiling src/graysvr/CBase.cpp
 Compiling src/graysvr/CChar.cpp
 Compiling src/graysvr/CCharAct.cpp
 Compiling src/graysvr/CCharBase.cpp
 Compiling src/graysvr/CCharFight.cpp
 Compiling src/graysvr/CCharNPC.cpp
 Compiling src/graysvr/CCharNPCAct.cpp
 Compiling src/graysvr/CCharNPCPet.cpp
 Compiling src/graysvr/CCharNPCStatus.cpp
 Compiling src/graysvr/CCharSkill.cpp
 Compiling src/graysvr/CCharSpell.cpp
 Compiling src/graysvr/CCharStatus.cpp
 Compiling src/graysvr/CCharUse.cpp
 Compiling src/graysvr/CChat.cpp
 Compiling src/graysvr/CClient.cpp
 Compiling src/graysvr/CClientDialog.cpp
 Compiling src/graysvr/CClientEvent.cpp
 Compiling src/graysvr/CClientGMPage.cpp
 Compiling src/graysvr/CClientLog.cpp
 Compiling src/graysvr/CClientMsg.cpp
 Compiling src/graysvr/CClientTarg.cpp
 Compiling src/graysvr/CClientUse.cpp
 Compiling src/graysvr/CContain.cpp
 Compiling src/graysvr/CGMPage.cpp
 Compiling src/graysvr/CItem.cpp
 Compiling src/graysvr/CItemBase.cpp
 Compiling src/graysvr/CItemMulti.cpp
 Compiling src/graysvr/CItemMultiCustom.cpp
 Compiling src/graysvr/CItemShip.cpp
 Compiling src/graysvr/CItemSpawn.cpp
 Compiling src/graysvr/CItemStone.cpp
 Compiling src/graysvr/CItemVend.cpp
 Compiling src/graysvr/CLog.cpp
 Compiling src/graysvr/CObjBase.cpp
 Compiling src/graysvr/CParty.cpp
 Compiling src/graysvr/CPathFinder.cpp
 Compiling src/graysvr/CResource.cpp
 Compiling src/graysvr/CResourceCalc.cpp
 Compiling src/graysvr/CResourceDef.cpp
 Compiling src/graysvr/CSector.cpp
 Compiling src/graysvr/CServer.cpp
 Compiling src/graysvr/CServRef.cpp
 Compiling src/graysvr/CWebPage.cpp
 Compiling src/graysvr/CWorld.cpp
 Compiling src/graysvr/CWorldImport.cpp
 Compiling src/graysvr/CWorldMap.cpp
 Compiling src/graysvr/graysvr.cpp
 Compiling src/graysvr/PingServer.cpp
 Compiling src/graysvr/UnixTerminal.cpp
 Compiling src/common/twofish/twofish2.cpp
 Compiling src/common/CArray.cpp
 Compiling src/common/CAssoc.cpp
 Compiling src/common/CDataBase.cpp
 Compiling src/common/CEncrypt.cpp
 Compiling src/common/CExpression.cpp
 Compiling src/common/CException.cpp
 Compiling src/common/CacheableScriptFile.cpp
 Compiling src/common/CFile.cpp
 Compiling src/common/CFileList.cpp
 Compiling src/common/CGrayData.cpp
 Compiling src/common/CGrayInst.cpp
 Compiling src/common/CGrayMap.cpp
 Compiling src/common/CMD5.cpp
 Compiling src/common/CQueue.cpp
 Compiling src/common/CRect.cpp
 Compiling src/common/CRegion.cpp
 Compiling src/common/CResourceBase.cpp
 Compiling src/common/CScript.cpp
 Compiling src/common/CScriptObj.cpp
 Compiling src/common/CSectorTemplate.cpp
 Compiling src/common/CSocket.cpp
 Compiling src/common/CsvFile.cpp
 Compiling src/common/CTime.cpp
 Compiling src/common/CString.cpp
 Compiling src/common/CVarDefMap.cpp
 Compiling src/common/CVarFloat.cpp
 Compiling src/common/ListDefContMap.cpp
 Compiling src/common/graycom.cpp
 Compiling src/common/sqlite/SQLite.cpp
 Compiling src/sphere/mutex.cpp
 Compiling src/sphere/strings.cpp
 Compiling src/sphere/threads.cpp
 Compiling src/sphere/linuxev.cpp
 Compiling src/sphere/asyncdb.cpp
 Compiling src/sphere/ProfileData.cpp
 Compiling src/network/network.cpp
 Compiling src/network/packet.cpp
 Compiling src/network/send.cpp
 Compiling src/network/receive.cpp
 Compiling src/common/libev/wrapper_ev.c
 Compiling src/common/zlib/adler32.c
 Compiling src/common/zlib/compress.c
 Compiling src/common/zlib/crc32.c
 Compiling src/common/zlib/deflate.c
 Compiling src/common/zlib/gzclose.c
 Compiling src/common/zlib/gzlib.c
 Compiling src/common/zlib/gzread.c
 Compiling src/common/zlib/gzwrite.c
 Compiling src/common/zlib/infback.c
 Compiling src/common/zlib/inffast.c
 Compiling src/common/zlib/inflate.c
 Compiling src/common/zlib/inftrees.c
 Compiling src/common/zlib/trees.c
 Compiling src/common/zlib/uncompr.c
 Compiling src/common/zlib/zutil.c
 Compiling src/common/sqlite/sqlite3.c
NUOVO EMULATORE CREATO: spheresvr-2018-03-29-17:26

have you edited the source?

tylers-username commented 6 years ago

Thanks for the quick feedback.

I have not modified the source. I am currently looking into whether the root cause is a missing library.

tylers-username commented 6 years ago

This was probably library related. I am bypassing this by building sphere and running sphere via a docker container.

tylers-username commented 6 years ago

See my previous comment. Building Sphere through a docker container.

coruja747 commented 6 years ago

BadIndex() is already defined on CArray.h (line 342)

inline size_t BadIndex() const { return (std::numeric_limits<size_t>::max)(); }

so honestly I don't know why cmake is returning "undeclared identifier 'BadIndex'" error on line 779 even after read the BadIndex() function early at line 342

my guess: this function is declared as inline and maybe cmake doesn't like declaration of inline function on header files. So try change inline size_t to size_t to check if it works