本征版本静态断言在二进制版本中失败

时间:2018-06-29 17:33:20

标签: drake

我在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中找到find_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 :(得分:0)

可能是您在Drake上之前(直接或间接)调用过type Props = { placeholderText?: string, }; const Textarea = (props: Props) => { const { placeholderText = '' } = props; return <textarea placeholder={`${placeholderText}`} /> }; ,在这种情况下CMake可能会找到系统本征,而不是Drake提供的版本。这是在此处注明的(很抱歉,它还不在一个明显的位置):

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

如果您先进行find_package(Eigen),则应该允许find_package(drake)稍后再使用。

如果这行不通,您可以在GitHub存储库中发布代码链接,还是可以减少复制问题?