Hi all, I'm trying to use the GSL random number functions from a ROOT macro that I'm compiling via ACLiC but without luck so far. The code I'm trying to compile is like this: -- #include <gsl/gsl_rng.h> #include <iostream> int main() { // GSL random number generator test double randno; gsl_rng* r = gsl_rng_alloc(gsl_rng_taus); for (int i=0; i<5; ++i) { randno = gsl_rng_get(r) / (gsl_rng_max(r) + 1.0); cout << randno << endl; } gsl_rng_free(r); return 0; } -- and I'm invoking ACLiC with these inputs to CINT: -- TString libs = gSystem->GetLinkedLibs(); libs.Append(" -lgsl -lgslcblas"); gSystem->SetLinkedLibs(libs.Data()); .L gsltest.cpp+ -- which results in -- dlopen error: /path/to/gsltest_cpp.so: undefined symbol: gsl_rng_taus Load Error: Failed to load Dynamic link library /path/to/gsltest_cpp.so *** Interpreter error recovered *** -- Any suggestions? I can compile the same minimal test file with e.g. g++ -o rngtest -lgsl -lgslcblas gsltest.cpp so there's no problem with the system GSL setup as far as I can tell. I'd also like to be able to run the macro in non-interactive mode (i.e. from my shell command line rather than in CINT) -- how would I go about compiling/linking to the .so file and executing a function defined in it this way? Thanks, Andy -- Andy Buckley, HEP Group, Cavendish Lab, Cambridge http://www.insectnation.org
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:15 MET