Compiling C++ class with Rotation3D obejct

Dear ROOT experts,
now it is my time to ask for your help, which would be well appreciated!

Until now I compiled all my code including ROOT libraries successfully and never had problems. Recently I needed a ROOT::Math::Rotation3D object, which is used inside a custom class to address some 3D geometry problems. Trying to compile with gcc/g++ yields errors like this:

/usr/bin/ld: testclass.o: in function `RootRotation::RootRotation()':
/home/groot/Test/testclass.cpp:15: undefined reference to `ROOT::Math::Rotation3D::Rotation3D()'
/usr/bin/ld: /home/groot/Test/testclass.cpp:19: undefined reference to `ROOT::Math::operator*(ROOT::Math::RotationZ const&, ROOT::Math::RotationY const&)'
/usr/bin/ld: /home/groot/Test/testclass.cpp:19: undefined reference to `ROOT::Math::Rotation3D::operator*(ROOT::Math::RotationX const&) const'
/usr/bin/ld: testclass.o: in function `RootRotation::RootRotation(double, double, double)':
/home/groot/Test/testclass.cpp:22: undefined reference to `ROOT::Math::Rotation3D::Rotation3D()'
/usr/bin/ld: /home/groot/Test/testclass.cpp:26: undefined reference to `ROOT::Math::operator*(ROOT::Math::RotationZ const&, ROOT::Math::RotationY const&)'
/usr/bin/ld: /home/groot/Test/testclass.cpp:26: undefined reference to `ROOT::Math::Rotation3D::operator*(ROOT::Math::RotationX const&) const'
collect2: error: ld returned 1 exit status

A minimal example to reproduce the error is attached. From some research it is some issue with libGenVec? I am out of ideas, but maybe somebody here has an idea on how to make it work :slight_smile:

ROOT Version:6.22/02
Platform: Linux kernel 5.10.18-1-MANJARO
Compiler: g++ (GCC) 10.2.0
___test.tar.gz (1.7 KB)

ROOTGLIBS := $(shell $(ROOTPATH)root-config --glibs) -lGenVector

Thank you very much! I tried adding the -lGenVector flag, but apparently put it in the wrong place …
Funny how such a small thing can change everything.

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