在ROS使用自己安装的eigen时的cmake错误
来源:互联网 发布:mcafree是什么软件 编辑:程序博客网 时间:2024/06/08 00:04
原链接: (http://community.bwbot.org)[http://community.bwbot.org]
在我在自己的ROS系统中安装最新的eigen后,在自己的工作空间执行catkin_make
后出现了如下的错误
CMake Error at /opt/ros/kinetic/share/eigen_conversions/cmake/eigen_conversionsConfig.cmake:106 (message): Project 'eigen_conversions' specifies '/usr/include/eigen3' as an include dir, which is not found. It does neither exist as an absolute directory nor in '/opt/ros/kinetic//usr/include/eigen3'. Ask the maintainer 'Tully Foote <tfoote@osrfoundation.org>' to fix it.Call Stack (most recent call first): /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package) image_pipeline/depth_image_proc/CMakeLists.txt:4 (find_package)-- Configuring incomplete, errors occurred!See also "/home/randoms/Documents/ros/workspace/build/CMakeFiles/CMakeOutput.log".See also "/home/randoms/Documents/ros/workspace/build/CMakeFiles/CMakeError.log".Makefile:3692: recipe for target 'cmake_check_build_system' failedmake: *** [cmake_check_build_system] Error 1Invoking "make cmake_check_build_system" failed
错误原因是CMake没有找到Eigen。我的Eigen的安装位置是/usr/local/include/eigen
而ROS系统中Eigen的默认安装位置是/usr/include/eigen
.很显然系统在旧的位置寻找eigen包。
可能影响到CMake寻找软件包软件包的目录有以下几个
/opt/ros/kinetic/share/cmake_modules/cmake/Modules # ros 系统环境的cmake_modules/usr/share/cmake-3.5/Modules # 系统cmake_modules, 不同版本cmake可能有些区别/usr/lib/cmake/eigen3 # 系统的cmake环境配置/usr/local/lib/cmake/eigen3 # 可能的另外一个路径/usr/local/share/eigen3/cmake # eigen的CMake配置文件
排查后以上的几个位置的文件后发现没有对/usr/include/eigen
的引用。
当然如果你遇到这个问题,是有可能这几个文件配置有问题的。
然后顺着catkin_make一路向下查找。终于发现了问题。
在/opt/ros/kinetic/share/orocos_kdl
这个包中orocos_kdl-config.cmake
这个文件把eigen的路径写死成了/usr/include/eigen
把文件修改成下面这样就可以了
# - Config file for the orocos-kdl package# It defines the following variables# orocos_kdl_INCLUDE_DIRS - include directories for Orocos KDL# orocos_kdl_LIBRARIES - libraries to link against for Orocos KDL# orocos_kdl_PKGCONFIG_DIR - directory containing the .pc pkgconfig files# Compute pathsget_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)find_package(Eigen3)set(orocos_kdl_INCLUDE_DIRS "${EIGEN3_INCLUDE_DIRS};/opt/ros/kinetic/include")if(NOT TARGET orocos-kdl) include("${SELF_DIR}/OrocosKDLTargets.cmake")endif()set(orocos_kdl_LIBRARIES orocos-kdl)# where the .pc pkgconfig files are installedset(orocos_kdl_PKGCONFIG_DIR "/opt/ros/kinetic/lib/pkgconfig")
如果你也遇到类似的问题就要定位到具体的package然后找到对应的路径进行修改就可以了。
阅读全文
0 0
- 在ROS使用自己安装的eigen时的cmake错误
- CMake中调用自定义安装位置Eigen库的方法
- Eigen在ARM上的使用
- 在ROS中定义并使用自己的消息类型
- eigen的简单使用
- Eigen的使用笔记
- Eigen库的使用
- Eigen的使用
- Eigen的使用
- ROS在树莓派上的安装
- cmake在linux,windows,mac下的安装与使用
- cmake在linux,windows,mac下的安装与使用
- CMake的安装和使用
- CMake 的安装与使用
- CMake的安装和使用
- CMake的安装和使用
- [CMake] CMake的使用
- ROS定制并使用自己的msg
- JavaScript DOM深度遍历(2种方法)和广度遍历
- catkin_make的时候发生了什么
- 阿里巴巴Java开发手册v1.2.0网页版
- netstat 的10个基本用法
- 319. Bulb Switcher
- 在ROS使用自己安装的eigen时的cmake错误
- IP地址分类(A类 B类 C类 D类 E类)
- 300. Longest Increasing Subsequence
- JavaScript编码规范
- 通过WARN(1,"xxx") 来确定code的flow和打印callstack
- 【Reading Notes】CP3-Understanding Lighting Models
- 基于tcp/ip协议的ModBus
- ros 无法创建工作空间
- UVALive2953 POJ1775 ZOJ2358 Sum of Factorials【打表+穷尽搜索】