PDA

View Full Version : Problems with compiling


Miztah
02-23-2004, 03:27 PM
I'm having a few various problems compiling each of the programs, so i'll just throw out all of the errors in hopes that someone can possibly solve one if not all of them. I'm running FreeBSD 4.8 and using gmake to compile. The source im using is the new stuff on the CVS in the NewSource directory.

To start, the EMuShareMem.

-bash-2.05b$ gmake
gcc -Wall -Wuninitialized -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wno-deprecated -Wcomment -Wcast-align -DDEBUG=1 -DSHAREMEM -DCATCH_CRASH -DEMUSHAREMEM -g -fPIC -O2 -D_GNU_SOURCE -DINVERSEXY -DFX `mysql_config --cflags` -c MMFMutex.cpp -o MMFMutex.o
mysql_config: not found
In file included from MMFMutex.cpp:1:
MMFMutex.h:18: redefinition of `union semun'
/usr/include/sys/sem.h:49: previous definition here
MMFMutex.cpp: In method `MMFMutex::MMFMutex(int)':
MMFMutex.cpp:27: no matching function for call to `semun::semun ()'
MMFMutex.h:23: candidates are: semun::semun(const semun &)
gmake: *** [MMFMutex.o] Error 1
-bash-2.05b$

While im sure its probably possible to just remove the libary from the system, its probably not an option given to everyone who might have this problem. I realize the mysql_config problem, and plan to fix that after i get these other problems sorted.

On to zone..

I get a small warning in the part of the compile that it makes it through:
../common/EQNetwork.cpp: In method `void EQNetworkConnection::MakeEQPacket(APPLAYER *, bool = true)':
../common/EQNetwork.cpp:1482: warning: value computed is not used

Then the actual error:
In file included from ../common/../common/servertalk.h:8,
from ../common/packet_dump.cpp:27:
../common/../common/../common/eq_packet_structs.h:1261: anonymous class type not used to declare any objects
../common/packet_dump.cpp: In function `void DumpPacketBin(const void *, unsigned int)':
../common/packet_dump.cpp:150: warning: cast discards qualifiers from pointer target type
gmake: *** [../common/packet_dump.o] Error 1

Honestly not sure on this one.

If i try and compile world, i get an error relatively close to zone's error with a little more:

In file included from ../common/../common/servertalk.h:8,
from ../common/packet_dump.cpp:27:
../common/../common/../common/eq_packet_structs.h:1261: anonymous class type not used to declare any objects
../common/packet_dump.cpp: In function `void DumpPacketAscii(const uchar *, unsigned int, unsigned int = 16, unsigned int = 0)':
/usr/include/g++/iomanip.h:56: warning: can't inline call to `class ostream & operator <<<int>(ostream &, const smanip<int> &)'
../common/packet_dump.cpp:35: warning: called from here
../common/packet_dump.cpp: In function `void DumpPacketBin(const void *, unsigned int)':
../common/packet_dump.cpp:150: warning: cast discards qualifiers from pointer target type
gmake: *** [../common/packet_dump.o] Error 1


Any help or suggestions would be greatly appreciated.

Thanks

samandhi
02-23-2004, 03:39 PM
There is NO support for those files, at this point. However, there are numerous posts on this forum that might help you compile.. Matter of fact I remember seeing a guide to comiling using freebsd...

Miztah
02-23-2004, 06:56 PM
Yes, i read the fact that the files on shawn's cvs have no support. The source code is now on the sourceforge cvs, so i assumed that it had reached the point where someone would offer support for it. And the freebsd guide doesnt help with compilation problems im having, either.

samandhi
02-23-2004, 07:01 PM
Dont feel badly, I am having problems with it too.. hehe I think I am holding my teeth wrong or something..... There is a guide here that is for Linux, but should work on FreeBSD ( I just dont know enough about dependencies and all that to get it working, trying to wheen myself from windows hehe), and you can find it here: http://www.eqemulator.net/forums/viewtopic.php?t=6489 (http://www.eqemulator.net/forums/viewtopic.php?t=6489) Near the bottom of the post. Hope that helps some..

var1ety
02-24-2004, 03:31 PM
Your problems are GCC and FreeBSD specific. FreeBSD uses GCC 2.95, which is incompatible with a lot of code that the dev team is using. You need to upgrade to GCC 3.2+ to compile the source. If you were to migrate your 4.x system to GCC 3.2 you could compile, however you need to ensure that all your libraries are compiled with the same GCC, or you'll run into problems.

I gave up getting it to compile on FreeBSD 4.x. However, if you migrate to FreeBSD 5.2+ you'll have a native GCC 3.2+ compiler, which elimates most of the problems.

The semun problem can be fixed my commenting out the semun definition everywhere that it exists. Search the forums for FreeBSD and you will find some of my posts with patches to enable previous 5.x versions of EQEmu to compile and run on FreeBSD.