While trying to build the ramtools sources against a recent ROOT version, the compilation fails due to missing standard library headers and a deprecated compression enum.
Environment
OS: Ubuntu 24.04
Compiler: GCC 13.3
ROOT: 6.36.08
Steps to reproduce
Clone the repository and attempt to compile the code with ROOT:
g++ -g -O0 main.cpp ramrecord.C root-config --cflags --libs
Observed errors
Example errors encountered during compilation:
ramrecord.h: error: ‘vector’ in namespace ‘std’ does not name a type
ramrecord.h: error: ‘map’ in namespace ‘std’ does not name a type
main.cpp: error: ‘kLZMA’ is not a member of ‘ROOT’
Reason
The code relies on ROOT macro execution where some headers are implicitly available. When compiling as a standard C++ project, the required STL headers are missing. Additionally, ROOT::kLZMA is no longer available in newer ROOT versions.
Possible fix
Adding the required STL includes in ramrecord.h and updating the compression configuration should allow the code to compile with modern ROOT.