我在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中,它可以与相同的代码一起很好地工作。
答案 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存储库中发布代码链接,还是可以减少复制问题?