Cannot extract standard library include paths at ROOT startup

Hello everyone,

After upgrading to Ubuntu 16.10 from 16.04, I’ve run into the following issue with ROOT 6.08/04 and cling. I get the following message upon starting ROOT.

$ root
ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!
Invoking:
  LC_ALL=C g++-5  -O2 -DNDEBUG -xc++ -E -v /dev/null 2>&1 >/dev/null | awk '/^#include </,/^End of search/{if (!/^#include </ && !/^End of search/){ print }}' | GREP_OPTIONS= grep -E "(c|g)\+\+"
Results was:
With exit code 256
input_line_1:1:10: fatal error: file
      '/usr/lib/gcc/x86_64-linux-gnu/6.2.0/../../../../include/c++/6.2.0/new'
      modified since it was first processed
#include <new>
         ^
   ------------------------------------------------------------
  | Welcome to ROOT 6.08/04                http://root.cern.ch |
  |                               (c) 1995-2016, The ROOT Team |
  | Built for linuxx8664gcc                                    |
  | From tag v6-08-04, 13 January 2017                         |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
   ------------------------------------------------------------

root [0]

And then upon calling a TBrowser, I get

root [0] new TBrowser
IncrementalExecutor::executeFunction: symbol '_ZN5cling7runtime6gClingE' unresolved while linking [cling interface function]!
You are probably missing the definition of cling::runtime::gCling
Maybe you need to load the corresponding shared library?

I’m grabbing my installation from the Ubuntu 16 binary, and I’ve installed/reinstalled the required and optional packages to no avail. My issue is related to other problems with cling/standard-library that I’ve seen on this forum, but I can’t quite find the solution specific to mine.

Thanks in advance,
Ian

Hi Ian,

the error makes a lot of sense. During the distribution upgrade, the header files of the stl changed (for good) as probably the compiler did: one sees for example that the invocation done internally by ROOT is g++5.
Could you rebuild ROOT?

Cheers,
Danilo

Ahh yes! That worked. I’ve always shied away from building from source if a binary exists, but I guess I know what to do now if I see library issues crop up between releases.

Thanks!
Ian

Hi Ian,

let us know how it goes if you have any problem.

Cheers,
Danilo

Hi @igraham ,
Could you please let me know the procedure how to get rid of this type of error?

I am using binary distribution [v6.12].
Error:

ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!
Invoking:
LC_ALL=C g+±5 -O2 -DNDEBUG -xc++ -E -v /dev/null 2>&1 >/dev/null | awk ‘/^#include </,/^End of search/{if (!/^#include </ && !/^End of search/){ print }}’ | GREP_OPTIONS= grep -E “(c|g)++”
Results was:
With exit code 256

Hi @N_Sushree_Ipsita,

What environment are you running on? You might be missing dependencies on your system, take a look at Dependencies - ROOT. In particular, it seems that you are lacking a working C++ toolchain (i.e. g++ and the relevant system headers).

Cheers,
J.