[Gate-users] Compiling Gate V5.0.0 & V5.0.0_p01
Niklas Rehfeld
rehfeld at imnc.in2p3.fr
Wed Sep 2 18:32:45 CEST 2009
Hi Peter,
Indeed,
#include <iostream>
is the correct way to include this library
#include "iostream.h"
or
#include <iostream.h>
is deprecated and shouldn't be used. So in my opinion the Gate source
should be fixed. Thanks.
Niklas
On Wed, 02 Sep 2009 17:42:21 +0200, Peter Bloomfield
<peter.bloomfield at camhpet.ca> wrote:
> Dear Gaters,
>
> I have had to change the file GateToLMF.h to compile Gate, this was also
> the case
> in Gate version 5.0.0
> I have the following setup:
> OS : openSUSE 11.1 - 32-bit
> gcc : gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)
> Geant : geant4.9.2.p01
> ROOT : 5.24
> CLHEP : 2.0.4.2
> Gate : v5.0.0_p01
> LMF : v3.0
>
> After issuing 'make' I get following errors
> Making dependency for file src/GateOPETSystem.cc ...
> In file included from src/GateOPETSystem.cc:13:
> ../output/include/GateToLMF.hh:25:22: error: iostream.h: No such file
> or directory
> and repeated for any .cc file using GateToLMF.hh
>
> The library libGate.a is created, but Gate fails to link with the
> following
>
> Linking Gate ...
> ./tmp/Linux-g++/Gate/libGate.a(GateDetectorConstruction.o): In function
> `GateDetectorConstruction::BuildSurfaces()':
> GateDetectorConstruction.cc:(.text+0x3d9): undefined reference to
> `GateObjectCreatorStore::GetInstance()'
> GateDetectorConstruction.cc:(.text+0x3f7): undefined reference to
> `GateSurfaceList::BuildSurfaces()'
> ./tmp/Linux-g++/Gate/libGate.a(GateDetectorConstruction.o): In function
> `GateDetectorConstruction::GateDetectorConstruction()':
> GateDetectorConstruction.cc:(.text+0x6c1): undefined reference to
> `GateObjectCreatorStore::GetInstance()'
> GateDetectorConstruction.cc:(.text+0x6c9): undefined reference to
> `GateSystemListManager::GetInstance()'
> ./tmp/Linux-g++/Gate/libGate.a(GateDetectorConstruction.o): In function
> `GateDetectorConstruction::GateDetectorConstruction()':
> GateDetectorConstruction.cc:(.text+0xad1): undefined reference to
> `GateObjectCreatorStore::GetInstance()'
> GateDetectorConstruction.cc:(.text+0xad9): undefined reference to
> `GateSystemListManager::GetInstance()'
> ./tmp/Linux-g++/Gate/libGate.a(GateDigitizer.o): In function
> `GateDigitizer::~GateDigitizer()':
> GateDigitizer.cc:(.text+0x1a19): undefined reference to `vtable for
> GateNamedObject'
> ./tmp/Linux-g++/Gate/libGate.a(GateDigitizer.o): In function
> `GateDigitizer::~GateDigitizer()':
> GateDigitizer.cc:(.text+0x1f49): undefined reference to `vtable for
> GateNamedObject'
> ./tmp/Linux-g++/Gate/libGate.a(GateDigitizer.o): In function
> `GateDigitizer::~GateDigitizer()':
> GateDigitizer.cc:(.text+0x2479): undefined reference to `vtable for
> GateNamedObject'
> ./tmp/Linux-g++/Gate/libGate.a(GateDigitizer.o): In function
> `GateClockDependent::~GateClockDependent()':
> GateDigitizer.cc:(.text._ZN18GateClockDependentD2Ev[GateClockDependent::~GateClockDependent()]+0xf):
> undefined reference to `vtable for GateNamedObject'
> .............. Lots of similar lines ..............
> ./tmp/Linux-g++/Gate/libGate.a(GateArrayRepeaterMessenger.o): In
> function
> `GateArrayRepeaterMessenger::GateArrayRepeaterMessenger(GateArrayRepeater*)':
> GateArrayRepeaterMessenger.cc:(.text+0xffa): undefined reference to
> `GateObjectRepeaterMessenger::GateObjectRepeaterMessenger(GateVObjectRepeater*)'
> GateArrayRepeaterMessenger.cc:(.text+0x18ed): undefined reference to
> `GateObjectRepeaterMessenger::~GateObjectRepeaterMessenger()'
> ./tmp/Linux-g++/Gate/libGate.a(GateArrayRepeaterMessenger.o): In
> function `GateArrayRepeaterMessenger::~GateArrayRepeaterMessenger()':
> GateArrayRepeaterMessenger.cc:(.text+0x186): undefined reference to
> `GateObjectRepeaterMessenger::~GateObjectRepeaterMessenger()'
> ./tmp/Linux-g++/Gate/libGate.a(GateArrayRepeaterMessenger.o): In
> function `GateArrayRepeaterMessenger::~GateArrayRepeaterMessenger()':
> GateArrayRepeaterMessenger.cc:(.text+0x206): undefined reference to
> `GateObjectRepeaterMessenger::~GateObjectRepeaterMessenger()'
> ./tmp/Linux-g++/Gate/libGate.a(GateArrayRepeaterMessenger.o):(.rodata._ZTI26GateArrayRepeaterMessenger[typeinfo
> for GateArrayRepeaterMessenger]+0x8): undefined
> reference to `typeinfo for GateObjectRepeaterMessenger'
> collect2: ld returned 1 exit status
> make: *** [bin/Linux-g++/Gate] Error 1
>
> If I edit the file GateToLMF.hh and replace "#include iostream.h" with
> "#include <iostream>"
> and then 'make clean', followed by 'make', Gate compiles fine and
> executes.
>
> Is there something I am missing in my SuSE system setup?
>
> Thanks
>
>
> Peter
>
More information about the Gate-users
mailing list