I have some c++ code and a makefile that compiles on an old system running root5.34 that I’m trying to port over to a new Ubuntu machine. The c++ code was auto generated from a root TTree with the MakeClass option and as far as I can tell the problem is with the makefile/ubuntu.
my default makefile reads as:
OPT = -Wall
CXX = g++ $(OPT)
ROOTFLAGS =`root-config --glibs --cflags`
all: Process
Process: Process.o
@echo " "
@echo "Compiling"
$(CXX) $(ROOTFLAGS) Process.o -o runProcess
rm -f Process.o
Process.o: Process.cxx
@echo " "
@echo "Making Objects"
$(CXX) $(ROOTFLAGS) -c Process.cxx
clean:
rm -f Process.o
rm -f runProcess
and compiling gives the error:
Making Objects
g++ -Wall `root-config --glibs --cflags` -c Process.cxx
Compiling
g++ -Wall `root-config --glibs --cflags` Process.o -o runProcess
/usr/bin/ld: Process.o: in function `temp::temp(TTree*)':
Process.cxx:(.text+0x3f): undefined reference to `ROOT::GetROOT()'
.
.
.
In testing things out I removed the --cflags option which gives a no such file or directory error for TROOT.h
Does Ubuntu require a special setup to link the libraries properly?
ROOT Version: 6.18
Platform: Ubuntu 20.04