RE: load a list of libs

From: <naumov_at_nusun.jinr.ru>
Date: Mon, 10 Mar 2008 22:38:44 -0000 (UTC)


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:39:51 CET

This archive was generated by hypermail 2.2.0 : Mon Mar 10 2008 - 23:50:01 CET