I am trying to use the experimental RNTuple feature. It seems to work when I use a ROOT interactive session, but RNTuple libraries don’t seem to be found by my C++ project in VS Code, despite other ROOT libraries being found and working properly. I get many linking errors such as
build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `ROOT::Experimental::RNTupleWriter::~RNTupleWriter()’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `vtable for ROOT::Experimental::RSimpleField’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `vtable for ROOT::Experimental::RFieldBase’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `ROOT::Experimental::Internal::GenerateColumnElement(std::type_index, ROOT::Experimental::EColumnType)’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `ROOT::Experimental::RFieldBase::BindValue(std::shared_ptr)’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `ROOT::Experimental::RFieldBase::AcceptVisitor(ROOT::Experimental::Detail::RFieldVisitor&) const’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `ROOT::Experimental::RNTupleModel::Create()’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `vtable for ROOT::Experimental::RFieldZero’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `ROOT::Experimental::RSimpleField::ConstructValue(void*) const’
[build] /usr/bin/ld: libQwAnalysis.so: undefined reference to `ROOT::Experimental::RFieldBase::AppendImpl(void const*)’
Here is the relevant part of my my cmakelists file:
set(minimum_root_version 6.22)
find_package(ROOT ${minimum_root_version} REQUIRED New Gui)
config_add_dependency(ROOT ${minimum_root_version})
I am trying to include the libraries as
#include “TH1.h”
#include “ROOT/RNTuple.hxx”
#include “ROOT/RNTupleModel.hxx”
#include “ROOT/RNTupleWriter.hxx”
ROOT version: 6.34.04
Platform: Ubuntu 24.04.2 LTS,
VS Code Version: 1.99.3
Any help would be appreciated.