Cuberite Forum
Compiling on Linux - Printable Version

+- Cuberite Forum (https://forum.cuberite.org)
+-- Forum: Cuberite (https://forum.cuberite.org/forum-4.html)
+--- Forum: Development (https://forum.cuberite.org/forum-13.html)
+--- Thread: Compiling on Linux (/thread-566.html)

Pages: 1 2


Compiling on Linux - The Walking Glitch - 10-03-2012

Didn't see a dedicated section for support, so I'll post it here. Downloaded revision 918 with subversion, types "make" and "make release=1" and here is what it outputs, and then quits immediately afterwards:
Code:
make
/usr/bin/g++ -s -ggdb -D_DEBUG -c -I. -Isource -Isource/md5 -IWebServer -Isource/items -Isource/blocks -Itolua++-1.0.93/src/lib -Ilua-5.1.4/src -Izlib-1.2.7 -IiniFile -Itolua++-1.0.93/include -Ijsoncpp-src-0.5.0/include -Ijsoncpp-src-0.5.0/src/lib_json -Isquirrel_3_0_1_stable/include -Isquirrel_3_0_1_stable -Isquirrel_3_0_1_stable/sqrat CryptoPP/wake.cpp -o build/debug/CryptoPP/wake.o
In file included from CryptoPP/wake.h:5:0,
                 from CryptoPP/wake.cpp:4:
CryptoPP/secblock.h: In instantiation of ‘CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer CryptoPP::AllocatorWithCleanup<T, T_Align16>::allocate(CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type, const void*) [with T = unsigned char; bool T_Align16 = false; CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer = unsigned char*; CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type = long unsigned int]’:
CryptoPP/secblock.h:247:19:   required from ‘CryptoPP::SecBlock<T, A>::SecBlock(CryptoPP::SecBlock<T, A>::size_type) [with T = unsigned char; A = CryptoPP::AllocatorWithCleanup<unsigned char>; CryptoPP::SecBlock<T, A>::size_type = long unsigned int]’
CryptoPP/strciphr.h:134:26:   required from ‘CryptoPP::SymmetricCipherFinal<BASE, INFO>::SymmetricCipherFinal() [with BASE = CryptoPP::ConcretePolicyHolder<CryptoPP::WAKE_Policy<CryptoPP::EnumToType<CryptoPP::ByteOrder, 1> >, CryptoPP::AdditiveCipherTemplate<CryptoPP::AbstractPolicyHolder<CryptoPP::AdditiveCipherAbstractPolicy, CryptoPP::SymmetricCipher> >, CryptoPP::AdditiveCipherAbstractPolicy>; INFO = CryptoPP::WAKE_OFB_Info<CryptoPP::EnumToType<CryptoPP::ByteOrder, 1> >]’
CryptoPP/wake.cpp:10:25:   required from here
CryptoPP/secblock.h:91:3: error: ‘CheckSize’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
CryptoPP/secblock.h:91:3: note: declarations in dependent base ‘CryptoPP::AllocatorBase<unsigned char>’ are not found by unqualified lookup
CryptoPP/secblock.h:91:3: note: use ‘this->CheckSize’ instead
make: *** [build/debug/CryptoPP/wake.o] Error 1

I have GCC 4.7.2 and GNU make 3.82. Operator error, or?


RE: Compiling on Linux - xoft - 10-03-2012

That seems like a problem inside the CryptoPP library; no idea how to fix that, sorry.

Maybe, since we're using only a small fraction of the library, removing the wake.cpp file might actually help - it might not be needed for MCServer. Try that first, and if that produces a working binary, we'll remove the file from the repo.


RE: Compiling on Linux - xoft - 10-04-2012

I've removed the offending file since it doesn't seem to be needed at all. Please try compiling rev 925.


RE: Compiling on Linux - The Walking Glitch - 10-04-2012

Code:
make
/usr/bin/g++ -s -ggdb -D_DEBUG -c -I. -Isource -Isource/md5 -IWebServer -Isource/items -Isource/blocks -Itolua++-1.0.93/src/lib -Ilua-5.1.4/src -Izlib-1.2.7 -IiniFile -Itolua++-1.0.93/include -Ijsoncpp-src-0.5.0/include -Ijsoncpp-src-0.5.0/src/lib_json -Isquirrel_3_0_1_stable/include -Isquirrel_3_0_1_stable -Isquirrel_3_0_1_stable/sqrat CryptoPP/rng.cpp -o build/debug/CryptoPP/rng.o
In file included from CryptoPP/rng.h:7:0,
                 from CryptoPP/rng.cpp:5:
CryptoPP/filters.h:7:22: fatal error: secblock.h: No such file or directory
compilation terminated.
make: *** [build/debug/CryptoPP/rng.o] Error 1
[jordan@jordan mc-server-read-only]$ make
/usr/bin/g++ -s -ggdb -D_DEBUG -c -I. -Isource -Isource/md5 -IWebServer -Isource/items -Isource/blocks -Itolua++-1.0.93/src/lib -Ilua-5.1.4/src -Izlib-1.2.7 -IiniFile -Itolua++-1.0.93/include -Ijsoncpp-src-0.5.0/include -Ijsoncpp-src-0.5.0/src/lib_json -Isquirrel_3_0_1_stable/include -Isquirrel_3_0_1_stable -Isquirrel_3_0_1_stable/sqrat CryptoPP/rng.cpp -o build/debug/CryptoPP/rng.o
In file included from CryptoPP/filters.h:7:0,
                 from CryptoPP/rng.h:7,
                 from CryptoPP/rng.cpp:5:
CryptoPP/secblock.h: In instantiation of ‘CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer CryptoPP::AllocatorWithCleanup<T, T_Align16>::allocate(CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type, const void*) [with T = unsigned char; bool T_Align16 = false; CryptoPP::AllocatorWithCleanup<T, T_Align16>::pointer = unsigned char*; CryptoPP::AllocatorWithCleanup<T, T_Align16>::size_type = long unsigned int]’:
CryptoPP/secblock.h:247:19:   required from ‘CryptoPP::SecBlock<T, A>::SecBlock(CryptoPP::SecBlock<T, A>::size_type) [with T = unsigned char; A = CryptoPP::AllocatorWithCleanup<unsigned char>; CryptoPP::SecBlock<T, A>::size_type = long unsigned int]’
CryptoPP/algparam.h:17:2:   required from here
CryptoPP/secblock.h:91:3: error: ‘CheckSize’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
CryptoPP/secblock.h:91:3: note: declarations in dependent base ‘CryptoPP::AllocatorBase<unsigned char>’ are not found by unqualified lookup
CryptoPP/secblock.h:91:3: note: use ‘this->CheckSize’ instead
make: *** [build/debug/CryptoPP/rng.o] Error 1
Revision 925, otherwise same setup as earlier. Edit the read only folder is in fact modifiable, just didn't rename it to reflect that.


RE: Compiling on Linux - The Walking Glitch - 10-04-2012

Also, simply getting rid of secblock does not work, it is required for this.

EDIT: I messed with secblock, and fixed it. Now other files are throwing errors, I will see about fixing those too. I'll upload the fixed files in a zip folder once I get them fixed.
It would seem my progress has been suddenly halted, found a bug in GCC, which I do not feel like looking into right now. I will when I get back from school tomorrow.


RE: Compiling on Linux - konfiot - 10-06-2012

You can add the -fpermissive flag to compile it, it worked for me, but now I have bugs, and the server crashes when someone respawns (see Here)


RE: Compiling on Linux - The Walking Glitch - 10-09-2012

(10-06-2012, 06:02 PM)konfiot Wrote: You can add the -fpermissive flag to compile it, it worked for me, but now I have bugs, and the server crashes when someone respawns (see Here)

I tried that, and I still came upon the error. I meant to upload the patched cryptopp files the other night, but forgot about it in the midst of real life. I'm going to try downloading the latest revision.


RE: Compiling on Linux - konfiot - 10-09-2012

(10-09-2012, 12:28 PM)The Walking Glitch Wrote:
(10-06-2012, 06:02 PM)konfiot Wrote: You can add the -fpermissive flag to compile it, it worked for me, but now I have bugs, and the server crashes when someone respawns (see Here)

I tried that, and I still came upon the error. I meant to upload the patched cryptopp files the other night, but forgot about it in the midst of real life. I'm going to try downloading the latest revision.
Arf, Yeah the last rev is fixing this error, but I got an other error, which I fixed also with with a -fpermissive flag (this flag is kinda magicBig Grin) Hope it will work for you.
What's your hardware and OS ?


RE: Compiling on Linux - The Walking Glitch - 10-27-2012

(10-09-2012, 03:27 PM)konfiot Wrote:
(10-09-2012, 12:28 PM)The Walking Glitch Wrote:
(10-06-2012, 06:02 PM)konfiot Wrote: You can add the -fpermissive flag to compile it, it worked for me, but now I have bugs, and the server crashes when someone respawns (see Here)

I tried that, and I still came upon the error. I meant to upload the patched cryptopp files the other night, but forgot about it in the midst of real life. I'm going to try downloading the latest revision.
Arf, Yeah the last rev is fixing this error, but I got an other error, which I fixed also with with a -fpermissive flag (this flag is kinda magicBig Grin) Hope it will work for you.
What's your hardware and OS ?
Phenom II 1090T @ 4.4Ghz; 16GB of RAM; 120GB SSD boot drive; 4 2TB drives, RAID 0+1; CFed 7870's OCed to 1200MHz. Fedora 17 xfce. And yes, the -fpermissive flag does work magic sometimes.
Code:
make release=1 CFLAGS="-fpermissive"
/usr/bin/g++ -s -O3 -DNDEBUG -c -I. -Isource -Isource/md5 -IWebServer -Isource/items -Isource/blocks -Itolua++-1.0.93/src/lib -Ilua-5.1.4/src -Izlib-1.2.7 -IiniFile -Itolua++-1.0.93/include -Ijsoncpp-src-0.5.0/include -Ijsoncpp-src-0.5.0/src/lib_json -Isquirrel_3_0_1_stable/include -Isquirrel_3_0_1_stable -Isquirrel_3_0_1_stable/sqrat source/Server.cpp -o build/release/source/Server.o
In file included from source/Protocol/ProtocolRecognizer.h:13:0,
                 from source/Server.cpp:23:
source/Protocol/Protocol.h: In member function ‘void cProtocol::WriteVectorI(const Vector3i&)’:
source/Protocol/Protocol.h:163:22: error: ‘WriteInt’ was not declared in this scope
make: *** [build/release/source/Server.o] Error 1

Still refuses to compile even with -fpermissive set, as you can see. I don't have the time to fix it myself right now.


RE: Compiling on Linux - xoft - 10-27-2012

Did you get the latest sources? Rev 1013 compiles fine with gcc 4.4.3 on Ubuntu on my computer. The error you're listing makes no sense - the WriteInt() function is defined a few lines above that error.