Frage

Ich versuche, meine c ++ Anwendung gegen die „Eigen 2.0.15“ Bibliothek zu verknüpfen. Einige Details:

  • Mein Compiler: gcc Version 4.0.1 (Apple Inc. Build 5493)
  • Mein OS ist: Mac OS 10.5
  • kompilieren ich den Code mit g ++ -I / opt / local / include -I / opt / local / include / eigen2 -O2 -g ...

    Building target: LBRALL Invoking: MacOS X C++ Linker g++ -L/opt/local/lib -o "LBRALL" [... *.o -files ] -lcv -lEigen2 -lcxcore -lhighgui

Der Fehler ist:

`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`

Hat jemand eine Idee, warum die Linke versagt?

War es hilfreich?

Lösung

Mit Blick auf den Fehlermeldungen, meine Vermutung du hast instanziiert nicht Matrix, Transformieren und möglicherweise auch andere Vorlagen. Das geschah vermutlich, weil die Header-Dateien nicht Umsetzung dieser Vorlagen enthalten haben, oder vielleicht gibt es eine bedingte Kompilierung, die angeblich Implementierung für sie ziehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top