0

我在我的 ubuntu 16.04 xenial 中安装了 drake 二进制文件, 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 中,它适用于相同的代码。

4

1 回答 1

0

可能是您在调用 Drake 之前(直接或间接)调用find_package(Eigen)过,在这种情况下,CMake 可能会找到您的系统 Eigen 而不是 Drake 提供的版本;这在此处注明(抱歉,它尚未出现在更明显的位置):

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

如果你先做find_package(drake),那么它应该允许find_package(Eigen)以后工作。

如果这不起作用,您是否可以在 GitHub 存储库中发布指向您的代码的链接,或者您可以做一个最小的复制问题吗?

于 2018-06-30T12:04:02.280 回答