TMatrixTSym help

Hello,

I am using the TMatrixTSym template to create a symmetric matrix. I have done a similar test like:

#include <TMatrixTSym.h>
TMatrixTSym<int>  mat;

When I compile, it give out errors:

MatrixTool.cxx:(.text+0x12ac): undefined reference to `TMatrixTSym<int>::Delete_m(int, int*&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o: In function `TMatrixTSym<int>::IsA() const':
MatrixTool.cxx:(.text._ZNK11TMatrixTSymIiE3IsAEv[TMatrixTSym<int>::IsA() const]+0x14): undefined reference to `TMatrixTSym<int>::Class()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o: In function `TMatrixTSym<int>::Clear(char const*)':
MatrixTool.cxx:(.text._ZN11TMatrixTSymIiE5ClearEPKc[TMatrixTSym<int>::Clear(char const*)]+0x46): undefined reference to `TMatrixTSym<int>::Delete_m(int, int*&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o: In function `TMatrixTBase<int>::IsA() const':
MatrixTool.cxx:(.text._ZNK12TMatrixTBaseIiE3IsAEv[TMatrixTBase<int>::IsA() const]+0x14): undefined reference to `TMatrixTBase<int>::Class()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o: In function `TMatrixTSym<int>::~TMatrixTSym()':
MatrixTool.cxx:(.text._ZN11TMatrixTSymIiED0Ev[TMatrixTSym<int>::~TMatrixTSym()]+0x76): undefined reference to `TMatrixTSym<int>::Delete_m(int, int*&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o: In function `TMatrixTSym<int>::~TMatrixTSym()':
MatrixTool.cxx:(.text._ZN11TMatrixTSymIiED1Ev[TMatrixTSym<int>::~TMatrixTSym()]+0x6e): undefined reference to `TMatrixTSym<int>::Delete_m(int, int*&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x38): undefined reference to `TMatrixTBase<int>::Draw(char const*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0xa8): undefined reference to `TMatrixTBase<int>::Print(char const*) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0xe8): undefined reference to `TMatrixTSym<int>::ShowMembers(TMemberInspector&, char*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0xec): undefined reference to `TMatrixTSym<int>::Streamer(TBuffer&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x110): undefined reference to `TMatrixTSym<int>::SetMatrixArray(int const*, char const*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x118): undefined reference to `TMatrixTSym<int>::GetSub(int, int, int, int, TMatrixTBase<int>&, char const*) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x11c): undefined reference to `TMatrixTSym<int>::SetSub(int, int, TMatrixTBase<int> const&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x120): undefined reference to `TMatrixTBase<int>::GetMatrix2Array(int*, char const*) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x124): undefined reference to `TMatrixTBase<int>::InsertRow(int, int, int const*, int)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x128): undefined reference to `TMatrixTBase<int>::ExtractRow(int, int, int*, int) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x12c): undefined reference to `TMatrixTSym<int>::Shift(int, int)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x130): undefined reference to `TMatrixTSym<int>::ResizeTo(int, int, int)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x134): undefined reference to `TMatrixTSym<int>::ResizeTo(int, int, int, int, int)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x138): undefined reference to `TMatrixTSym<int>::Determinant() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x13c): undefined reference to `TMatrixTSym<int>::Determinant(double&, double&) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x140): undefined reference to `TMatrixTBase<int>::Zero()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x144): undefined reference to `TMatrixTBase<int>::Abs()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x148): undefined reference to `TMatrixTBase<int>::Sqr()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x14c): undefined reference to `TMatrixTBase<int>::Sqrt()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x150): undefined reference to `TMatrixTBase<int>::UnitMatrix()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x154): undefined reference to `TMatrixTBase<int>::NormByDiag(TVectorT<int> const&, char const*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x158): undefined reference to `TMatrixTBase<int>::RowNorm() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x15c): undefined reference to `TMatrixTBase<int>::ColNorm() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x160): undefined reference to `TMatrixTBase<int>::E2Norm() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x164): undefined reference to `TMatrixTBase<int>::NonZeros() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x168): undefined reference to `TMatrixTBase<int>::Sum() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x16c): undefined reference to `TMatrixTBase<int>::Min() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x170): undefined reference to `TMatrixTBase<int>::Max() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x17c): undefined reference to `TMatrixTSym<int>::Apply(TElementActionT<int> const&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x180): undefined reference to `TMatrixTSym<int>::Apply(TElementPosActionT<int> const&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x184): undefined reference to `TMatrixTSym<int>::Randomize(int, int, double&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV11TMatrixTSymIiE[vtable for TMatrixTSym<int>]+0x188): undefined reference to `TMatrixTSym<int>::RandomizePD(int, int, double&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x38): undefined reference to `TMatrixTBase<int>::Draw(char const*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0xa8): undefined reference to `TMatrixTBase<int>::Print(char const*) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0xe8): undefined reference to `TMatrixTBase<int>::ShowMembers(TMemberInspector&, char*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0xec): undefined reference to `TMatrixTBase<int>::Streamer(TBuffer&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x110): undefined reference to `TMatrixTBase<int>::SetMatrixArray(int const*, char const*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x114): undefined reference to `TMatrixTBase<int>::IsSymmetric() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x120): undefined reference to `TMatrixTBase<int>::GetMatrix2Array(int*, char const*) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x124): undefined reference to `TMatrixTBase<int>::InsertRow(int, int, int const*, int)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x128): undefined reference to `TMatrixTBase<int>::ExtractRow(int, int, int*, int) const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x12c): undefined reference to `TMatrixTBase<int>::Shift(int, int)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x140): undefined reference to `TMatrixTBase<int>::Zero()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x144): undefined reference to `TMatrixTBase<int>::Abs()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x148): undefined reference to `TMatrixTBase<int>::Sqr()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x14c): undefined reference to `TMatrixTBase<int>::Sqrt()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x150): undefined reference to `TMatrixTBase<int>::UnitMatrix()'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x154): undefined reference to `TMatrixTBase<int>::NormByDiag(TVectorT<int> const&, char const*)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x158): undefined reference to `TMatrixTBase<int>::RowNorm() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x15c): undefined reference to `TMatrixTBase<int>::ColNorm() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x160): undefined reference to `TMatrixTBase<int>::E2Norm() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x164): undefined reference to `TMatrixTBase<int>::NonZeros() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x168): undefined reference to `TMatrixTBase<int>::Sum() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x16c): undefined reference to `TMatrixTBase<int>::Min() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x170): undefined reference to `TMatrixTBase<int>::Max() const'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x17c): undefined reference to `TMatrixTBase<int>::Apply(TElementActionT<int> const&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x180): undefined reference to `TMatrixTBase<int>::Apply(TElementPosActionT<int> const&)'
TrkAlignGenToolsLibtemp_shlib/MatrixTool.o:(.data.rel.ro._ZTV12TMatrixTBaseIiE[vtable for TMatrixTBase<int>]+0x184): undefined reference to `TMatrixTBase<int>::Randomize(int, int, double&)'
collect2: ld returned 1 exit status
gmake[3]: *** [../i686-slc5-gcc43-opt/libTrkAlignGenToolsLib.so] Error 1
gmake[2]: *** [TrkAlignGenToolsLib] Error 2
gmake[1]: *** [common_target] Error 2
gmake: *** [check_config] Error 2

Could anyone give some suggestions? Thanks in advance.
Jike

Dupe of TMatrixTSym template compilation problem
Please don’t post issues twice; we can still move them if we find a better place.