Ошибка статического утверждения собственной версии в двоичной версии - PullRequest
0 голосов
/ 29 июня 2018

Я установил двоичный файл Drake в свой Ubuntu 16.04 xenial curl -o drake.tar.gz https://drake-packages.csail.mit.edu/drake/continuous/drake-latest-xenial.tar.gz sudo tar -xvzf drake.tar.gz -C /opt И я нахожу в моем cmake_package (drake) и пытаюсь выполнить оптимизацию. Но я получил следующую ошибку /opt/drake/include/drake/common/autodiff.h:15:1: error: static assertion failed: Drake requires Eigen >= v3.3.3. static_assert(EIGEN_VERSION_AT_LEAST(3, 3, 3) а также /opt/drake/include/drake/common/autodiffxd.h:232:69: error: ‘MakeAutoDiffScalar’ was not declared in this scope return MakeAutoDiffScalar(m_value * other, m_derivatives * other); Я думаю, что я в том числе право Эйген, который находится в /opt/drake/include/eigen3.

Как я мог это исправить? Кстати, в Mac он хорошо работает с тем же кодом.

1 Ответ

0 голосов
/ 30 июня 2018

Возможно, вы (прямо или косвенно) позвонили find_package(Eigen) до того, как сделали это на Drake, и в этом случае CMake может находить вашу систему Eigen, а не версию, предоставленную Drake; это отмечено здесь (извините, что это еще не в более очевидном месте):

https://github.com/RobotLocomotion/drake-shambhala/tree/b3d7804/drake_cmake_installed/src/pcl#eigen

Если вы сначала выполните find_package(drake), то это должно позволить find_package(Eigen) работать позже.

Если это не сработает, не могли бы вы опубликовать ссылку на ваш код в репозитории GitHub, или вы можете сделать минимальную проблему с воспроизведением?

...