Hello,
When trying to generate dictionaries with gInterpreter.GenerateDictionary I get a bunch of “undefined reference” (see --1-- below). This happens only when calling this function from pyROOT, while the dictionary is correctly generated if the function call is made from the root interpreter.
This problem appears only with v5.34.01 (with v5.32.04 everything works fine).
At first I thought that this was the same problem reported here [url]Problem compiling with CINT from PyROOT However, even with the trick indicated in that thread
the problem is still there.
Could you please help me figure out what I’m doing wrong?
The python/gcc versions are below (–2--)
Many thanks
davide
–1--
>>> import ROOT as r
>>> r.gSystem.SetMakeSharedLib(r.gSystem.GetMakeSharedLib().replace('-Wl,--as-needed', ''))
>>> r.gInterpreter.GenerateDictionary("pair<string,bool>", "string;utility")
/tmp/root/root_v5.34.01/AutoDict_pair_string_bool__cxx_ACLiC_dict.o: In function `G__setup_memfuncpairlEstringcOboolgR()':
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0xe4): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0xec): undefined reference to `G__tag_memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0xf4): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x16f): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x177): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x1ef): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x1f7): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x273): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x27b): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x2f3): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x372): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x377): undefined reference to `G__tag_memfunc_reset'
/tmp/root/root_v5.34.01/AutoDict_pair_string_bool__cxx_ACLiC_dict.o: In function `G__AutoDict_pair_string_bool__cxx_ACLiC_dict_2796_0_1(G__value*, char const*, G__param*, int)':
<...>
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x12fc): undefined reference to `G__call_setup_funcs'
/tmp/root/root_v5.34.01/AutoDict_pair_string_bool__cxx_ACLiC_dict.o: In function `G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dict::~G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dict()':
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text._ZN58G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dictD2Ev[_ZN58G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dictD5Ev]+0x1c): undefined reference to `G__remove_setup_func'
collect2: ld returned 1 exit status
Error in <ACLiC>: Compilation failed!
2
–2--
$ gcc --version
gcc (Gentoo 4.5.4 p1.0, pie-0.4.7) 4.5.4
$ python --version
Python 2.7.3
$ root-config --version --python-version --features
5.34/01 2.7builtin_zlib cintex explicitlink gviz genvector mathmore memstat odbc opengl pythia8 python reflex shadowpw shared ssl tmva x11 xft xml thread