On 4 November 2013 16:08, David Aldrich wrote: > Hi > >> Are your function templates defined in the headers that EVD.cpp includes? > > Yes, EVD.cpp includes: > > #include "Matrix.h" > > and Matrix.h contains: > > template<class T> class Matrix : public MatrixBase { > public: > <snip> > static Matrix<T> eye( unsigned a_size, T a_scalingFactor=1.0 ) DONT_INLINE; > <snip> > } Then that's the problem. As I said, function templates must be defined in every file that uses them, or explicitly instantiated. I don't know why your code worked previously, it looks invalid (if you don't have explicit instantiations in some other file.)