[ROOT] Recompilation of programs.

From: Dmitry A. Shtol (shtol@sndxt1.inp.nsk.su)
Date: Thu Aug 28 2003 - 06:13:23 MEST


Hi,
On "ROOT education at Fermilab".
(http://www-root.fnal.gov/root/class/Day2_files/v3_document.htm)
In "ACLiC Advantages" there are following statement:
"With the KCC compiler can only load each C++ shared library once per root 
session, this also means that you can not use the .U command to unload the 
shared library. When adding shared libraries one after another, and then 
removing one that has been added previously to others, the ones added 
after the one to be removed will also be removed."

Does it mean, that I must restart ROOT always when I want to recompile a 
program after some changes? Is it a way to recompile program without 
restart?

When I try to do it, all varibles are deleted. Example:
(ExpEeSelect_c.so loaded before through a 
command gROOT->LoadMacro("ExpEeSelect_C.so") in rootlogon.C)

root [1] double x=1        
root [2] x
(double)1.00000000000000000e+00
root [3] .sh               
bash$ touch ExpEeSelect.C
bash$ exit
root [4] .L ExpEeSelect.C+
Warning in <ACLiC>: unmodified script has already been compiled and loaded
Warning in <ACLiC>: it will be regenerated and reloaded!
Info in <TUnixSystem::ACLiC>: creating shared library 
/home/shtol/root/./ExpEeSelect_C.so
Warning in <TClassTable::Add>: class ExpEeSelect already in TClassTable
root [5] x
Error: Symbol x is not defined in current scope  FILE:(tmpfile) LINE:1
*** Interpreter error recovered ***

What I can do with this problem?

Thank you.

==============================================================
Dmitry A. Shtol                        (SND group)
Budker Institute of Nuclear Physics



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:15 MET