Hello macrooters,
I have the following problem when I use AClic to compile macros on MacOs
10.3.8, ROOT version 4.02.00. I have joined to this message a very
simple example with two simple independant files. At the first
compilations, I obtain the following error message:
root [0] .L Test1.C+
Info in <TUnixSystem::*ACLiC*>: creating shared library
/Volumes/Utilisateurs/choubi/Documents/Travail/root/./Test1_C.so
root [1] .L Test2.C+
Info in <TUnixSystem::*ACLiC*>: creating shared library
/Volumes/Utilisateurs/choubi/Documents/Travail/root/./Test2_C.so
g++: Test1_C.dylib: No such file or directory
Error in <*ACLiC*>: Compilation failed!
If I quit ROOT and rerun it again, here is the error message I obtain:
root [0] .L Test1.C+
root [1] .L Test2.C+
Info in <TUnixSystem::*ACLiC*>: creating shared library
/Volumes/Utilisateurs/choubi/Documents/Travail/root/./Test2_C.so
g++: Test1_C.dylib: No such file or directory
Error in <*ACLiC*>: Compilation failed!
Now if I compile the second file first, Test1.C being already compiled, all seems to be OK:
root [0] .L Test2.C+
Info in <TUnixSystem::*ACLiC*>: creating shared library
/Volumes/Utilisateurs/choubi/Documents/Travail/root/./Test2_C.so
root [1] .L Test1.C+
root [2] Test1()
This is the Test1 function...
root [3] Test2()
This is the Test2 function...
All work as if each file had to be compiled separately in different interactive ROOT sessions, and then all can be loaded in one single session. It would may be worth that the .dylib file be generated additionally with the .so file in *AClic*, but I do not know how to do it since the fields used in TSystem::SetMakeSharedLib() method seem to be uneditable.
Thanks for any help and/or suggestion
-- Daniel CUSSOL LPC Caen IN2P3/ENSICAEN/Universite de Caen Boulevard du Marechal Juin 14050 CAEN CEDEX e-mail : cussol_at_in2p3.fr Tel : +33-(0)2-31-45-29-73 FAX : +33-(0)2-31-45-25-49Received on Tue Mar 01 2005 - 15:41:19 MET// Test1 file: compilation of a simple function
#ifndef __CINT__
#include "Riostream.h"
#endif
void Test2(void) { cout << "This is the Test2 function..." << endl; }// Test1 file: compilation of a simple function
#ifndef __CINT__
#include "Riostream.h"
#endif
void Test1(void) { cout << "This is the Test1 function..." << endl; }
This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:05 MET