Hi,
As you noted LoadListOfLibs does not exist. However I you were to provide an implementation, you would certainly consider it for inclusion :)
Cheers,
Philippe.
-----Original Message-----
From: owner-roottalk_at_root.cern.ch [mailto:owner-roottalk_at_root.cern.ch] On
Behalf Of naumov_at_nusun.jinr.ru
Sent: Monday, March 10, 2008 5:39 PM
To: Fine, Valeri
Cc: Dmitry Naumov; Dario Berzano; roottalk_at_cern.ch
Subject: RE: [ROOT] load a list of libs
Hi Valeri,
thanks for your response. Well, this is again the same gSystem->Load() function. Certainly I could do this kind of loop...
The reason of my question is motivated by a simple idea. I am using ROOT
VMC in my application. If I run it from the root interpreter I use a macro
which loads several dozens of Geant4 libraries. From release to release G4
merges/splits/renames some libraries and I have to follow all these
developments in that macro. On the other hand G4 always provides a nice
method similar to that in root-config. It can return me a line with all
libraries like:
-lG4_lib1 -lG4lib2 ... -lG4libN
and like this for several dozens of libraries. Therefore I though that it would be nice if instead of using a macro which loads one by one all the libraries I would simply ask root to load everything in one go. Well, one can say, please, split the line and use again gSystem->Load() substituting -lG4_lib1 by libG4lib1.so (thus analyzing the string). Certainly this is possible and quite easy to realize, while it would be a sort of comfortable to be able to load everything just by a line like: gSystem->LoadListOfLibs("")
This is the point. Ok, if this is not possible I will proceed with a loop, thanks again, Dmitry
>> Hi Dario,
>>
>> this I know. But this command seems to load only one library. Is there
>> something like:
>> root[] gSystem->LoadListOfLibs("-L/path_to_libs -lApp1 -lApp2 -lApp3");
>
> Yes, it does exist. Here you are ;-)
>
> {
> TString lPath = gSystem->GetDynamicPath();
> lPath+= ":path_to_libs";
> gSystem->SetDynamicPath((const char*)lPath);
> const char *libs[] = { "App1", "App2", "App3" };
> for (int i = 0; i < sizeof(libs)/sizeof(char *); i++)
> printf(" Loading %s %d\n", libs[i], gSystem->Load(libs[i]));
>
> }
>
> Hope this helps
>
> Valeri Fine
> ---------------
> Brookhaven National Laboratory
> Upton, NY 11973, USA
> Phone: +1 631 344 7806
> Fax: +1 631 344 4206
> E-mail: fine_at_bnl.gov
>> Thanks, Dmitry
>>
>> Dario Berzano ?????:
>> > On Mon, Mar 10, 2008 at 6:06 PM, Dmitry Naumov <naumov_at_nusun.jinr.ru>
>> wrote:
>> >
>> >> Dear roottalk,
>> >>
>> >> is there an implemented way to load a list of libraries made in the
>> form:
>> >> -L/path_to_libs -lApp1 -lApp2 -lApp3 ...
>> >> from the root interpreter?
>> >>
>> >
>> > Hi Dmitry,
>> >
>> > you can try gSystem->Load("library_name"). The documentation is
>> > available here:
>> >
>> > http://root.cern.ch/root/html/TSystem.html#TSystem:Load
>> >
>> > Regards,
>> >
>
Received on Mon Mar 10 2008 - 19:51:18 CET
This archive was generated by hypermail 2.2.0 : Mon Mar 10 2008 - 23:50:01 CET