Linking *.so in a macro

so now i have libZzz.so (does not contain ROOT libs)
the de-facto code that uses the library is in t1.cpp. But to get it work, i actually load it from t0.cpp like this:

R__LOAD_LIBRARY(./libZzz.so)
void t0(){
	gROOT->ProcessLine(".include ./someIncludePathAssociatedWithZzz/include/");
	gROOT->ProcessLine(".x t1.cpp"); // OK !
}

I tried several times to just load the library and include paths in t1.cpp without success. Am I doing something wrong ?

_ROOT Version:6.24.00
_Platform:conda (centos7)
_Compiler:GCC 9

in t1.cpp, use

R__LOAD_LIBRARY(./libZzz.so)
R__ADD_INCLUDE_PATH(./someIncludePathAssociatedWithZzz/include/)

// the de-facto code

Hi @NgJunKai,

Could you paste here the specific error output that you are getting in this case? Alternatively, could you attach a minimal reproducer?

As a (blind) workaround, I can suggest to try the following in t1.cpp:

gSystem->Load("./libZzz.so");
gSystem->AddIncludePath("./someIncludePathAssociatedWithZzzz/include");

Cheers,
J.

actually the original code worked. but i need two macros for this…
then i found that the revised one (as in my own reply) also worked.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.