一、概述
在ros使用中,遇到如图所示的报错。在编译ros功能包的时候下面的报错。
二、问题解决
(一)原因分析
我所使用的是ubuntu20.04+ros-noetic版本进行编译。无论使用catkin_make和catkin build均会产生上述的报错。
分析原因是因为没有找到Eigen库。首先,我怀疑是我在进行其他操作时候,把Eigen库给破坏了,基于此,我重新编译并运行其他使用过Eigen库的功能包,发现可以正常运行。说明不是Eigen库本身出现的问题。
那么应该是cmakelist配置出现问题。在经过网络查询后,发现其与我的报错位置均不相同。有一定可借鉴意义,但是方法不起效。
这是我找到的一些博客,可能会有所帮助。
关于eigen的编译报错:找不到Eigen3Config.cmake 和eigen3-config.cmake_could not find a package configuration file provid-CSDN博客
Ubuntu编译找不到eigen3的解决方法_could not find a package configuration file provid-CSDN博客 气哭了的C++调试,cmake 找不到 eigen_add the installation prefix of "eigen3-CSDN博客
cmake错误:Could not find a configuration file for package “Eigen3“-CSDN博客
需要注意看自己报错的位置是不是跟博客中的相同。
(二)CMakeLists.txt文件修改
在CMakeLists.txt文件中进行如下修改后,发现其可以正常编译。直接在文件中设置路径。
list(APPEND CMAKE_PREFIX_PATH /usr/lib/cmake/eigen3/ /opt/ros/noetic/share/grid_map_ros/cmake/)
set(Eigen3_DIR /usr/lib/cmake/eigen3/)
正确找到链接添加后,即可正确编译通过。