nutario
nutario

Reputation: 793

Problems with Eigen library and c++ linker

I try to link my c++ application against the "Eigen 2.0.15" library. Some details:

The error is:

`Undefined symbols:
"Eigen::MatrixBase<Eigen::Block<Eigen::Matrix<float, 4, 4, 2, 4, 4>, 3, 3, 1, 32>    >::inverse() const", referenced from:
  Eigen::Transform<float, 3>::inverse(Eigen::TransformTraits) constin LBRSendStateCart.o
  Eigen::Transform<float, 3>::inverse(Eigen::TransformTraits) constin LBRCam.o
"Eigen::MatrixBase<Eigen::Matrix<float, 4, 4, 2, 4, 4> >::inverse() const", referenced from:
  Eigen::Transform<float, 3>::inverse(Eigen::TransformTraits) constin LBRSendStateCart.o
  Eigen::Transform<float, 3>::inverse(Eigen::TransformTraits) constin LBRCam.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [LBRALL] Error 1`

Does anybody have an idea why the linker fails?

Upvotes: 5

Views: 4022

Answers (1)

Gene Bushuyev
Gene Bushuyev

Reputation: 5538

Looking at the error messages, my guess you didn't instantiate Matrix, Transform and possibly other templates. That happened probably because the header files didn't contain implementation of those templates, or maybe there is a conditional compilation that is supposed to pull up implementation for them.

Upvotes: 2

Related Questions