[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