Game Development Community

TGE 1.5 & FC6

by Sean Richards · in Torque Game Engine · 01/13/2007 (3:55 pm) · 8 replies

I tried to run the Starter.fps demo on a my linux box and I get the following error.

./runtorque.sh
+ '[' '' = '' ']'
++ FindPath ./runtorque.sh
+++ echo ./runtorque.sh
+++ grep /
++ fullpath=./runtorque.sh
++ '[' ./runtorque.sh = '' ']'
++ '[' ./runtorque.sh = '' ']'
++ '[' -L ./runtorque.sh ']'
++ dirname ./runtorque.sh
+ GAME_HOME_PATH=.
+ LD_LIBRARY_PATH=.:./lib:../lib/openal/LINUX:../lib/xiph/linux:
+ export LD_LIBRARY_PATH
+ EXENAME=torqueDemo.bin
+ '[' '' == debug ']'
+ '[' '!' -x torqueDemo.bin ']'
+ echo 'Executable torqueDemo.bin does not exist.'
Executable torqueDemo.bin does not exist.
+ exit 1


Anyone got any ideas. I searched for Fc6 errors like this...didn't really see any.

#1
01/13/2007 (7:15 pm)
Sean,
The Linux TGE 1.5 SDK doesn't come with a precompiled executable; you have to compile it yourself.
From the TorqueGameEngineSDK-Linux-1-5-0 folder run "make -f mk/configure.mk OS=LINUX COMPILER=GCC4 BUILD=RELEASE" without the quotes. Then run "make".

When I did this I got a few errors that are easy to fix. If you get an error at the end of your compile see this thread for the fixes: www.garagegames.com/mg/forums/result.thread.php?qt=52962

I had to use the first 3 fixes there and also had to change the permissions on the file checklinks.sh to make it executable. The file is located at "TorqueGameEngineSDK-Linux-1-5-0/lib/xiph/linux/checklinks.sh". To make it executable run the command "chmod u+x checklinks.sh".

**EDIT**

This may still fail looking for libGLU.a. This is a static mesa library that is not provided by default on Fedora.
There is some discussion of it on the thread I linked above.
#2
01/15/2007 (6:59 am)
Ok, I ran into some new problems. I didn't see it covered in that post. here is what happened....

I ran the following commands.....

[TorqueGameEngineSDK-Linux-1-5-0]$ make -f mk/configure.mk OS=LINUX COMPILER=GCC4 BUILD=RELEASE

Current Configuration: this config is VALID
OS: LINUX
COMPILER: GCC4
BUILD: RELEASE
DIR.OBJ: out

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

So then I did this.........

make

In file included from ./game/gameBase.h:16,
from ./game/shapeBase.h:10,
from ./game/gameConnection.h:13,
from audio/audio.cc:11:
./dgl/gTexManager.h:428:26: warning: no newline at end of file
audio/audio.cc: In function 'int loopingImageSort(const void*, const void*)':
audio/audio.cc:157: warning: converting to 'int' from 'float'
audio/audio.cc: In function 'int streamingSourceSort(const void*, const void*)':
audio/audio.cc:189: warning: converting to 'int' from 'float'
audio/audio.cc: In function 'AUDIOHANDLE alxCreateSource(const Audio::Description*, const char*, const MatrixF*, AudioSampleEnvironment*)':
audio/audio.cc:703: warning: converting to non-pointer type 'ALuint' from NULL
audio/audio.cc: In function 'ALuint alxGetWaveLen(ALuint)':
audio/audio.cc:2091: warning: converting to 'ALuint' from 'F64'
--> Compiling audio/audioBuffer.cc
audio/audioBuffer.cc: In member function 'ALuint AudioBuffer::getALBuffer()':
audio/audioBuffer.cc:190: warning: converting to non-pointer type 'ALuint' from NULL
--> Compiling audio/audioDataBlock.cc
audio/audioDataBlock.cc: In function 'void::writeRangedF32(BitStream*, F32, F32, F32, U32)':
audio/audioDataBlock.cc:17: warning: passing 'F32' for argument 1 to 'void BitStream::writeInt(S32, S32)'
audio/audioDataBlock.cc: In constructor 'AudioSampleEnvironment::AudioSampleEnvironment()':
audio/audioDataBlock.cc:192: warning: converting to 'S32' from 'float'
audio/audioDataBlock.cc: In member function 'virtual void AudioDescription::packData(BitStream*)':
audio/audioDataBlock.cc:357: warning: passing 'F32' for argument 1 to 'void BitStream::writeInt(S32, S32)'
--> Compiling audio/audioFunctions.cc
--> Compiling audio/audioStreamSourceFactory.cc
--> Compiling audio/oggMixedStreamSource.cc
audio/oggMixedStreamSource.cc: In constructor 'OggMixedStreamSource::OggMixedStreamSource(const char*)':
audio/oggMixedStreamSource.cc:22: warning: converting to non-pointer type 'ALuint' from NULL
--> Compiling audio/vorbisStream.cc
audio/vorbisStream.cc: In member function 'long int OggVorbisFile::ov_bitrate(int)':
audio/vorbisStream.cc:743: warning: converting to 'long int' from 'double'
audio/vorbisStream.cc:747: warning: converting to 'long int' from 'double'
audio/vorbisStream.cc: In member function 'long int OggVorbisFile::ov_bitrate_instant()':
audio/vorbisStream.cc:775: warning: converting to 'long int' from 'double'
audio/vorbisStream.cc: In member function 'int OggVorbisFile::ov_time_seek(double)':
audio/vorbisStream.cc:1255: warning: converting to 'ogg_int64_t' from 'double'
audio/vorbisStream.cc: In member function 'int OggVorbisFile::ov_time_seek_page(double)':
audio/vorbisStream.cc:1282: warning: converting to 'ogg_int64_t' from 'double'
audio/vorbisStream.cc: In member function 'long int OggVorbisFile::ov_read(char*, int, int, int*)':
audio/vorbisStream.cc:1490: warning: converting to 'int' from 'float'
audio/vorbisStream.cc:1506: warning: converting to 'int' from 'float'
audio/vorbisStream.cc:1520: warning: converting to 'int' from 'float'
--> Compiling audio/vorbisStreamSource.cc
audio/vorbisStreamSource.cc: In member function 'void VorbisStreamSource::clear()':
audio/vorbisStreamSource.cc:47: warning: converting to non-pointer type 'ALuint' from NULL
--> Compiling audio/wavStreamSource.cc
audio/wavStreamSource.cc: In member function 'void WavStreamSource::clear()':
audio/wavStreamSource.cc:109: warning: converting to non-pointer type 'ALuint' from NULL
--> Compiling collision/abstractPolyList.cc
--> Compiling collision/boxConvex.cc
In file included from ./game/gameBase.h:16,
from collision/boxConvex.cc:8:
./dgl/gTexManager.h:428:26: warning: no newline at end of file
--> Compiling collision/clippedPolyList.cc
--> Compiling collision/concretePolyList.cc
--> Compiling collision/convex.cc
In file included from ./sceneGraph/sceneGraph.h:29,
from collision/convex.cc:9:
./dgl/gTexManager.h:428:26: warning: no newline at end of file
--> Compiling collision/convexBrush.cc
In file included from ./interior/interiorMapRes.h:9,
from ./collision/convexBrush.h:12,
from collision/convexBrush.cc:1:
./dgl/gTexManager.h:428:26: warning: no newline at end of file
./collision/optimizedPolyList.h:37: error: extra qualification 'OptimizedPolyList::Poly::' on member 'Poly'
make[1]: *** [out.GCC4.RELEASE/collision/convexBrush.obj] Error 1
make: *** [default] Error 2
[TorqueGameEngineSDK-Linux-1-5-0]$
---------------------------------------------------------------------------------------------------------------------------------------------------------
I only included the problem files...everything else complied correclty.
#3
01/15/2007 (8:58 am)
As per Chollys post above that error is mentioned on that link
on line 37 in /collision/optimizedPolyList.h make this
Poly::Poly() { plane = -1; vertexCount = 0; material = -1; };
to read like this
Poly() { plane = -1; vertexCount = 0; material = -1; };
anywhere it mentions "error: extra qualification" look at the lines it mentions the extra qualifications are the bit before and inc :: eg Poly::
This has been mentioned alot in the linux forum, todo with newer gcc compilers,

Hope it helps
#4
01/15/2007 (9:38 am)
Note switching to gcc 3.4 doesn't require changing any code.
#5
01/15/2007 (11:42 am)
Quote:Note switching to gcc 3.4 doesn't require changing any code.

Not so easy to find. I've tried using yum to down grade and it's not working. It keeps pushing me back to 4.1
#6
01/16/2007 (11:34 am)
FC6 pretty much requires GCC 4.1 but there should be some packages out there that allow a parallel install of gcc 3.4 along side it. If those packages aren't in extras or livna, you may have to download the RPMs and install manually. You can try rpmfind.net or search the fedora forums for advice. I'm sure there are others out there that need 3.4 on FC6.
#7
01/16/2007 (11:57 am)
Better to fix the broken code. There's several instances of code that looks like this:

Class Foo {
  Foo::Foo();
  Foo::~Foo();

  Foo::WhyIsTheClassNamePrefixedInsideTheClassDefnQueryMark(U32 bar);
};

You'll come across several of this. Knot and Poly spring to mind, I think there's a third. Just fix the code so that the name of the class isn't prefixed on the name of the function inside of the class definition, and you'll be a lot better off.

Gary (-;
#8
01/16/2007 (1:44 pm)
Yep, that's what I had to fix. That thread I linked to Pretty much covers it all.