Ошибка статического утверждения собственной версии в двоичной версии

Я установил двоичный файл 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 ответ

Решение

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

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

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

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

Другие вопросы по тегам