[Gate-users] Link problem in compiling Gate5-p01

Chris Reynolds C.Reynolds at westminster.ac.uk
Mon Oct 12 15:29:12 CEST 2009


Simon,
Thanks for the tips. I retried the make command, but no compilation
errors occured. The output is below. Any ideas?

Entering source/arf ...
make[1]: Nothing to be done for `obj'.
source/arf finished
Entering source/geometry ...
make[1]: Nothing to be done for `obj'.
source/geometry finished
Entering source/digitizer ...
make[1]: Nothing to be done for `obj'.
source/digitizer finished
Entering source/output ...
make[1]: Nothing to be done for `obj'.
source/output finished
Entering source/physics ...
make[1]: Nothing to be done for `obj'.
source/physics finished
Entering source/voxel ...
make[1]: Nothing to be done for `obj'.
source/voxel finished
Entering source/mandatory_G4_classes ...
make[1]: Nothing to be done for `obj'.
source/mandatory_G4_classes finished
Entering source/management ...
make[1]: Nothing to be done for `obj'.
source/management finished
Using granular libraries ...
Linking Gate
./tmp/Linux-g++/Gate/libGate.a(GateOutputMgr.o): In function
`GateOutputMgr::GateOutputMgr(G4String)':
GateOutputMgr.cc:(.text+0xd13): undefined reference to
`GateARFDataToRoot::GateARFDataToRoot(G4String const&, GateOutputMgr*,
DigiMode)'
./tmp/Linux-g++/Gate/libGate.a(GateOutputMgr.o): In function
`GateOutputMgr::GateOutputMgr(G4String)':
GateOutputMgr.cc:(.text+0x12b3): undefined reference to
`GateARFDataToRoot::GateARFDataToRoot(G4String const&, GateOutputMgr*,
DigiMode)'
./tmp/Linux-g++/Gate/libGate.a(GateSteppingAction.o): In function
`GateSteppingAction::UserSteppingAction(G4Step const*)':
GateSteppingAction.cc:(.text+0x232d): undefined reference to `typeinfo
for GateARFDataToRoot'
GateSteppingAction.cc:(.text+0x23b3): undefined reference to
`GateARFDataToRoot::IncrementNbOfSourcePhotons()'
collect2: ld returned 1 exit status
make: *** [bin/Linux-g++/Gate] Error 1






On Mon, 2009-10-12 at 14:13 +0200, Simon Stute wrote:
> No, not by default.
> You can type 'make >& log_file.log' to redirect stdin and err in the
> log_file (i.e. all messages, success and error) but you will not see
> anything on screen.
> If you want to, use the command 'tee', as: 'make | tee log_file.log' .
> It will redirect all outputs in the log_file and print on screen too.
> 
> But the main goal of makefile is that if you launch it again, it will
> only try to compile files that have changed or that have not been
> compiled, so just launch it again and it will fail on the last class
> that has failed to compile.
> 
> Good luck !
> Simon
> 
> On Mon, Oct 12, 2009 at 12:00 PM, Chris Reynolds
> <C.Reynolds at westminster.ac.uk> wrote:
>         Simon,
>         Is there a build log so I can see exactly which components are
>         not
>         compiling?
>         
>         Cheers
>         
>         Chris
>         
>         
>         On Mon, 2009-10-12 at 10:54 +0200, Simon Stute wrote:
>         > Hi,
>         >
>         > LD_LIBRARY_PATH is only used at the runtime for the programs
>         to search
>         > the dynamic libraries.
>         > Check out the compilation at the beggining (compilation for
>         the arf
>         > directory), I'm pretty sure some of the classes just did not
>         compile,
>         > and so did not create some object files (.o), and that's why
>         the link
>         > crashed.
>         > Since GATE is organized in thematic source directories, when
>         a
>         > compilation problem occurs, it just stops the compilation in
>         this
>         > directory, and others continue, that leads to link problem.
>         >
>         > Cheers,
>         > Simon
>         >
>         > 2009/10/12 Ida Häggström <ida.haggstrom at radfys.umu.se>
>         >         Hello Chris!
>         >
>         >         I would try adding the path to your .o-files to
>         >         LD_LIBRARY_PATH, like I wrote in the post to Congwu.
>         The
>         >         default path where they end up is
>         >         "gate_your_version/tmp/Linux-g++/Gate", you can
>         check that
>         >         directory to see if you find the files there (the
>         ones which
>         >         produce the undefined references, such as
>         GateARFDataToRoot
>         >         etc.). If that doesn't work, I don't know! =)
>         >
>         >         /Ida
>         >
>         >         2009/10/9 Chris Reynolds
>         <C.Reynolds at westminster.ac.uk>
>         >
>         >
>         >
>         >                 Hi,
>         >                 I'm also have linker issues on Ubuntu.
>         Similarly
>         >                 compilation is fine:
>         >
>         >                 Linking Gate
>         >                 ./tmp/Linux-g
>         ++/Gate/libGate.a(GateOutputMgr.o): In
>         >                 function
>         >                 `GateOutputMgr::GateOutputMgr(G4String)':
>         >                 GateOutputMgr.cc:(.text+0xd13): undefined
>         reference to
>         >
>         `GateARFDataToRoot::GateARFDataToRoot(G4String const&,
>         >                 GateOutputMgr*,
>         >                 DigiMode)'
>         >                 ./tmp/Linux-g
>         ++/Gate/libGate.a(GateOutputMgr.o): In
>         >                 function
>         >                 `GateOutputMgr::GateOutputMgr(G4String)':
>         >                 GateOutputMgr.cc:(.text+0x12b3): undefined
>         reference
>         >                 to
>         >
>         `GateARFDataToRoot::GateARFDataToRoot(G4String const&,
>         >                 GateOutputMgr*,
>         >                 DigiMode)'
>         >                 ./tmp/Linux-g
>         ++/Gate/libGate.a(GateSteppingAction.o):
>         >                 In function
>         >
>         `GateSteppingAction::UserSteppingAction(G4Step
>         >                 const*)':
>         >                 GateSteppingAction.cc:(.text+0x232d):
>         undefined
>         >                 reference to `typeinfo
>         >                 for GateARFDataToRoot'
>         >                 GateSteppingAction.cc:(.text+0x23b3):
>         undefined
>         >                 reference to
>         >
>         `GateARFDataToRoot::IncrementNbOfSourcePhotons()'
>         >                 collect2: ld returned 1 exit status
>         >                 make: *** [bin/Linux-g++/Gate] Error 1
>         >
>         >
>         >
>         >
>         >                 On Wed, 2009-10-07 at 13:44 -0700, C C
>         wrote:
>         >                 > Hi, everyone, I have problems of compiling
>         the
>         >                 gate5.
>         >                 > the OS is Suse. It seems the compilation
>         is not a
>         >                 problem. But just
>         >                 > cannot link. In the screen output there
>         are a lot of
>         >                 "undefinded
>         >                 > reference" error. Below is part of the
>         message. Can
>         >                 anybody give a
>         >                 > hint what may be the problem. Thanks a
>         lot.
>         >                 >
>         >                 > Congwu
>         >                 >
>         >                 > ..........
>         >                 > GateMDBFieldDecoder.cc:(.text+0x1843):
>         undefined
>         >                 reference to
>         >                 > `GateTokenizer::CleanUpString(G4String&)'
>         >                 > GateMDBFieldDecoder.cc:(.text+0x1857):
>         undefined
>         >                 reference to
>         >                 > `GateTokenizer::BreakString(G4String
>         const&, char)'
>         >                 > GateMDBFieldDecoder.cc:(.text+0x1881):
>         undefined
>         >                 reference to
>         >                 > `GateTokenizer::CleanUpString(G4String&)'
>         >                 > ./tmp/Linux-g
>         >                 ++/Gate/libGate.a(GateMDBFieldDecoder.o): In
>         function
>         >                 >
>         `GateMDBFieldDecoder::DecodeNumericField(G4String
>         >                 const&, G4String,
>         >                 > G4String const&, GateMap<G4String, int>&,
>         >                 GateMap<G4String,
>         >                 > double>&)':
>         >                 > GateMDBFieldDecoder.cc:(.text+0x254e):
>         undefined
>         >                 reference to
>         >                 > `GateTokenizer::CleanUpString(G4String&)'
>         >                 > GateMDBFieldDecoder.cc:(.text+0x2648):
>         undefined
>         >                 reference to
>         >                 > `GateTokenizer::CleanUpString(G4String&)'
>         >                 > ./tmp/Linux-g
>         >                 ++/Gate/libGate.a(GateMDBFieldDecoder.o): In
>         function
>         >                 >
>         `GateMDBFieldDecoder::DecodeTextField(G4String
>         >                 const&, G4String,
>         >                 > G4String const&, GateMap<G4String,
>         int>&)':
>         >                 > GateMDBFieldDecoder.cc:(.text+0x2bce):
>         undefined
>         >                 reference to
>         >                 > `GateTokenizer::CleanUpString(G4String&)'
>         >                 > GateMDBFieldDecoder.cc:(.text+0x2cc5):
>         undefined
>         >                 reference to
>         >                 > `GateTokenizer::CleanUpString(G4String&)'
>         >                 > ./tmp/Linux-g
>         >                 >
>         >
>         ++/Gate/libGate.a(GateMDBFieldDecoder.o):GateMDBFieldDecoder.cc:(.text
>         >                 > +0x2f8a): more undefined references to
>         >                 > `GateTokenizer::CleanUpString(G4String&)'
>         follow
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::~GateCompressedVoxelOutputMessenger()':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x5b):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x7c):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::~GateCompressedVoxelOutputMessenger()':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0xd4):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::~GateCompressedVoxelOutputMessenger()':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x124):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::SetNewValue(G4UIcommand*,
>         >                 > G4String)':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x31f):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::SetNewValue(G4UIcommand*,
>         >                 > G4String)'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::GateCompressedVoxelOutputMessenger(GateCompressedVoxelOutput*)':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x490):
>         >                 undefined
>         >                 > reference to
>         >                 >
>         >
>         `GateOutputModuleMessenger::GateOutputModuleMessenger(GateVOutputModule*)'
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x73b):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::GateCompressedVoxelOutputMessenger(GateCompressedVoxelOutput*)':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x960):
>         >                 undefined
>         >                 > reference to
>         >                 >
>         >
>         `GateOutputModuleMessenger::GateOutputModuleMessenger(GateVOutputModule*)'
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0xc0b):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::~GateCompressedVoxelOutputMessenger()':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0xc9):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):
>         >                 > In function
>         >                 >
>         >
>         `GateCompressedVoxelOutputMessenger::~GateCompressedVoxelOutputMessenger()':
>         >                 >
>         GateCompressedVoxelOutputMessenger.cc:(.text+0x119):
>         >                 undefined
>         >                 > reference to
>         >
>         `GateOutputModuleMessenger::~GateOutputModuleMessenger()'
>         >                 > ./tmp/Linux-g
>         >                 >
>         >
>         ++/Gate/libGate.a(GateCompressedVoxelOutputMessenger.o):(.rodata._ZTI34GateCompressedVoxelOutputMessenger[typeinfo for GateCompressedVoxelOutputMessenger]+0x10): undefined reference to `typeinfo for GateOutputModuleMessenger'
>         >                 > ./tmp/Linux-g
>         >
>         ++/Gate/libGate.a(GateFictitiousVoxelMapInserter.o):
>         >                 In
>         >                 > function
>         >
>         `GateFictitiousVoxelMapInserter::AddOutput(G4String)':
>         >                 > GateFictitiousVoxelMapInserter.cc:(.text
>         +0xb36):
>         >                 undefined reference
>         >                 > to `GateOutputMgr::instance'
>         >                 > GateFictitiousVoxelMapInserter.cc:(.text
>         +0xb48):
>         >                 undefined reference
>         >                 > to `GateOutputMgr::instance'
>         >                 > GateFictitiousVoxelMapInserter.cc:(.text
>         +0xb54):
>         >                 undefined reference
>         >                 > to `GateOutputMgr::m_digiMode'
>         >                 > GateFictitiousVoxelMapInserter.cc:(.text
>         +0xb86):
>         >                 undefined reference
>         >                 > to
>         >
>         `GateOutputMgr::AddOutputModule(GateVOutputModule*)'
>         >                 > GateFictitiousVoxelMapInserter.cc:(.text
>         +0xbfe):
>         >                 undefined reference
>         >                 > to
>         `GateOutputMgr::GateOutputMgr(G4String)'
>         >                 > GateFictitiousVoxelMapInserter.cc:(.text
>         +0xc05):
>         >                 undefined reference
>         >                 > to `GateOutputMgr::instance'
>         >                 > collect2: ld returned 1 exit status
>         >                 > make: *** [bin/Linux-g++/Gate] Error 1
>         >                 >
>         >                 >
>         >                 >
>         >                 >
>         >
>         ______________________________________________________________________
>         >                 > Hotmail: Powerful Free email with security
>         by
>         >                 Microsoft. Get it now.
>         >
>         >                 >
>         _______________________________________________
>         >                 > Gate-users mailing list
>         >                 > Gate-users at lists.healthgrid.org
>         >                 >
>         >
>         http://lists.healthgrid.org/mailman/listinfo/gate-users
>         >
>         >
>         >
>         >                 --
>         >                 The University of Westminster is a charity
>         and a
>         >                 company limited by
>         >                 guarantee.  Registration number: 977818
>         England.
>         >                  Registered Office:
>         >                 309 Regent Street, London W1B 2UW, UK.
>         >
>         >
>         _______________________________________________
>         >                 Gate-users mailing list
>         >                 Gate-users at lists.healthgrid.org
>         >
>         http://lists.healthgrid.org/mailman/listinfo/gate-users
>         >
>         >
>         >
>         >         _______________________________________________
>         >         Gate-users mailing list
>         >         Gate-users at lists.healthgrid.org
>         >
>         http://lists.healthgrid.org/mailman/listinfo/gate-users
>         >
>         >
>         
>         
>         
>         --
>         
>         The University of Westminster is a charity and a company
>         limited by
>         guarantee.  Registration number: 977818 England.  Registered
>         Office:
>         309 Regent Street, London W1B 2UW, UK.
>         
> 


-- 
The University of Westminster is a charity and a company limited by
guarantee.  Registration number: 977818 England.  Registered Office:
309 Regent Street, London W1B 2UW, UK.



More information about the Gate-users mailing list