Compile error using RDataFrame: fatal error: 'vdt/vdtMath.h' file not found

Hello

I cannot compile any file containing '#include “ROOT/RDataFrame.hxx” on the ROOT command line:

[file: toto.cpp]
#include "ROOT/RDataFrame.hxx"

void toto() {}

In ROOT:

   ------------------------------------------------------------------
  | Welcome to ROOT 6.20/05                        https://root.cern |
  | (c) 1995-2020, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on May 11 2020, 09:45:00                 |
  | From heads/v6-20-00-patches@v6-20-04-49-gc916bee956              |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
   ------------------------------------------------------------------

root [0] .L toto.cpp+
Info in <TUnixSystem::ACLiC>: creating shared library toto_cpp.so
In file included from input_line_11:6:
In file included from ././toto.cpp:1:
In file included from /home/frankland/software/install/root-v6-20-00/include/ROOT/RDataFrame.hxx:20:
In file included from /home/frankland/software/install/root-v6-20-00/include/ROOT/RDF/RInterface.hxx:15:
In file included from /home/frankland/software/install/root-v6-20-00/include/ROOT/RDF/ActionHelpers.hxx:17:
/home/frankland/software/install/root-v6-20-00/include/ROOT/RVec.hxx:48:10: fatal error: 'vdt/vdtMath.h' file not found
#include <vdt/vdtMath.h>
         ^~~~~~~~~~~~~~~
rootcling: /home/frankland/software/sources/root/interpreter/cling/lib/Interpreter/IncrementalParser.cpp:403: cling::IncrementalParser::~IncrementalParser(): Assertion `(T->getState() == Transaction::kCommitted || T->getState() == Transaction::kRolledBackWithErrors || T->getState() == Transaction::kNumStates || T->getState() == Transaction::kRolledBack) && "Not committed?"' failed.
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(+0x2c87733)[0x7f81c7649733]
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(+0x2c85136)[0x7f81c7647136]
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(+0x2c853fa)[0x7f81c76473fa]
/lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f81c42cd210]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f81c42cd18b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f81c42ac859]
/lib/x86_64-linux-gnu/libc.so.6(+0x25729)[0x7f81c42ac729]
/lib/x86_64-linux-gnu/libc.so.6(+0x36f36)[0x7f81c42bdf36]
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(+0x56409a)[0x7f81c4f2609a]
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(_ZN5cling11InterpreterD1Ev+0xdb)[0x7f81c4e9029b]
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(_ZN5cling11InterpreterD0Ev+0xd)[0x7f81c4e906dd]
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(+0x453413)[0x7f81c4e15413]
/home/frankland/software/install/root-v6-20-00/lib/libCling.so.6.20(+0x45354d)[0x7f81c4e1554d]
/home/frankland/software/install/root-v6-20-00/lib/libCore.so.6.20(_ZN5TROOTD1Ev+0x3b1)[0x7f81c464a0b1]
/lib/x86_64-linux-gnu/libc.so.6(+0x49a27)[0x7f81c42d0a27]
/lib/x86_64-linux-gnu/libc.so.6(on_exit+0x0)[0x7f81c42d0be0]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfa)[0x7f81c42ae0ba]
/home/frankland/software/install/root-v6-20-00/bin/rootcling(_start+0x2e)[0x55e0663f91ce]
Aborted (core dumped)
Error in <ACLiC>: Dictionary generation failed!

What am I doing wrong?

Cheers
John


Please read tips for efficient and successful posting and posting code

ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided


Hi John,
It seems that at the time ROOT was compiled, vdt was available on the system, but now ROOT can’t find it back at runtime. You can check where ROOT expects to find libvdt with ldd $ROOTSYS/lib/libROOTDataFrame.so | grep vdt. For example, if you built ROOT yourself, this might have happened if you had another ROOT installation active while configuring/building this ROOT version, and reconfiguring with cmake -Dbuiltin_vdt=ON . and re-building will fix the problem.

What ROOT version and what operating system are you on, and how did you install ROOT?

Cheers,
Enrico

Hi Enrico
I compiled the tip of the 6.20 branch last week, just after updating to Ubuntu 20.04
(see ROOT splash at start of output in my post for details, git commit etc.)

$ ldd $ROOTSYS/lib/libROOTDataFrame.so | grep vdt

gives nothing, so it doesn’t look like the library was accidentally linked with something it shouldn’t. On the other hand,

$ locate vdtMath.h
/home/frankland/software/build/root/build-v5-34-00-patches/include/vdt/vdtMath.h
/home/frankland/software/build/root/build-v6-18-00-patches/VDT-prefix/src/VDT/include/vdtMath.h
/home/frankland/software/build/root/build-v6-18-00-patches/include/vdt/vdtMath.h
/home/frankland/software/install/root-v5-34-00/include/vdt/vdtMath.h
/home/frankland/software/install/root-v6-18-00/include/vdt/vdtMath.h

As you can see I have several other versions of ROOT installed also, and some of these have “vdt” in them. I will try a rebuild (of the current tip of the 6.20 branch) adding option builitin_vdt as you suggest.

Cheers
John

Cheers Enrico, that did the trick!
Best regards
John

1 Like

Very well! I think what happened was indeed that you had one of those other ROOT installations activated while configuring the build for this one, so cmake found vdt “in the system” and decided there was no reason to build it itself.

Cheers,
Enrico

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