Hi,
On Mon, 2008-03-10 at 11:47 -0400, Fine, Valeri wrote:
> > 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]));
>
> }
How about something like
#include <sstream> void HandleLinkLine(const char* str) { std::stringstream s(str); while (!s.eof()) { std::string comp; s >> comp; if (s.bad()) break; if (comp[0] != '-') { Warning("LoadLibraryList", "Unknown component %s in %s", comp.c_str(), str); continue; } std::string dir_or_file = comp.substr(2,comp.size()-2); if (comp[1] == 'L') { std::string path = gSystem->GetDynamicPath(); path += ':'; path += dir_or_file; gSystem->SetDynamicPath(path.c_str()); } else if (comp[1] == 'l') { std::string lib("lib"); lib += dir_or_file; lib += ".so"; gSysten->Load(lib.c_str()); } else { Warning("LoadLibraryList", "Unknown option %s in %s", comp.c_str(), str); continue; } } }
Perhaps code like this should be added to the command line handling, so that one could execute ROOT with a command line like
root -L/path/to/libs -llibrary -lfoo
which could make batch processing easier.
Yours,
-- ___ | Christian Holm Christensen |_| | ------------------------------------------------------------- | | Address: Sankt Hansgade 23, 1. th. Phone: (+45) 35 35 96 91 _| DK-2200 Copenhagen N Cell: (+45) 24 61 85 91 _| Denmark Office: (+45) 353 25 447 ____| Email: cholm_at_nbi.dk Web: www.nbi.dk/~cholm | |Received on Tue Mar 11 2008 - 09:30:34 CET
This archive was generated by hypermail 2.2.0 : Tue Mar 11 2008 - 11:50:01 CET