Symbol lookup error: undefined symbol ZN7TStringC1ERKNSt7

Dear ROOTers,

I come to you for some help and guidance. I’m currently running a fitting software called Gfitter, which has to be compiled against ROOT. I’ve managed to properly load and install ROOT v5.34.34 my laptop (macOS Sierra 10.12.6, cmake 3.9.2). Following the same steps as in my laptop’s installation, I installed the same ROOT version in my desktop (CentOS Linux 7, cmake3 3.6.3).

In my laptop, Gfitter+ROOT run smoothly. However, when trying to run it in my desktop, I get the following error:

RooFit v3.60 – Developed by Wouter Verkerke and David Kirkby
Copyright © 2000-2013 NIKHEF, University of California & Stanford University
All rights reserved, please read http://roofit.sourceforge.net/license.txt

— GDCardInterpreterXML: Read xml data card: “scan1d_ch_others0.xml”
— GDCardInterpreterXML: XML parser returned code: 0
— GDCardInterpreterXML: GfitterFlags: UseParCaching = “T”
— GDCardInterpreterXML: GfitterFlags: OutputLevel = “INFO”
/mt/home/Documents/Software/ROOT/install/bin/root.exe: symbol lookup error: /mt/home/Documents/Software/gfitter-dim6/lib/libGfitter.so: undefined symbol: _ZN7TStringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

The error looks like one of the ROOT libraries is not properly loaded (TString class). In order to cross-check what’s going on, I went in my laptop to the directory where the ROOT libraries are installed and typing:

$ for i in ls *.so; do echo $i; nm $i | grep _ZN7TStringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE; done

I see

libCore.so
10639:00000000000ba450 T _ZN7TStringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

which means that this symbol resides in libCore.so . However, when doing so in my desktop, the most I get for libCore.so is

libCore.so
000000000050c2f0 T _ZN7TStringC1Ec
000000000050c310 T _ZN7TStringC1Eci
000000000050c1d0 T _ZN7TStringC1Ei
000000000050c1f0 T _ZN7TStringC1EPKc
000000000050c290 T _ZN7TStringC1EPKci
000000000050c420 T _ZN7TStringC1EPKciS1_i
000000000050c3c0 T _ZN7TStringC1ERK10TSubString
000000000050c360 T ZN7TStringC1ERKS
000000000050c250 T _ZN7TStringC1ERKSs
000000000050c100 T _ZN7TStringC1Ev

Any ideas on how to fix this issue?

Kind regards,

Oscar.

Looking at:

[...]$ c++filt _ZN7TStringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
TString::TString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)

it seems to me that your “libGfitter.so” was compiled with C++11 support while your ROOT version was not.

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