gpt4 book ai didi

cmake - 在 ROS Indigo 中使用特征库

转载 作者:行者123 更新时间:2023-12-04 11:04:31 26 4
gpt4 key购买 nike

我正在 ROS Indigo 中开发一个需要使用 Eigen 库的项目。根据 ROS Wiki 上的 indigo/Migration 页面,FindEigen.cmake 模块现在位于 cmake_modules 包中。

按照步骤将 cmake_modules 包添加到项目的 CMake.txt(通过 find_package)并将构建依赖项添加到 package.xml(< build_depend >cmake_modules< /build_depend >)后,我仍然在编译项目时遇到问题。我查看了引用上述步骤的各种来源,应该可以解决 ROS Indigo 中的问题,但似乎无法使其正常工作。这里是 CMake文件,这里是 package.xml .此外,我在项目文件夹中添加了 FindEigen.cmake 文件。任何帮助将不胜感激!错误内容如下:

CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:75 (find_package):
Could not find a package configuration file provided by "Eigen" with any of the
following names:
EigenConfig.cmake
eigen-config.cmake

Add the installation prefix of "Eigen" to CMAKE_PREFIX_PATH or set
"Eigen_DIR" to a directory containing one of the above files. If "Eigen"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
lidar_point_cloud/CMakeLists.txt:9 (find_package)

最佳答案

只是为了帖子的完整性,并关注 this answer在答案 ROS 中:

如果您已经安装了 Eigen(检查 sudo apt-get install libeigen3-dev ),那么您必须添加相应的 cmake_modulesEigen CMakeLists.txt 和 package.xml 文件的行:

包.xml

<build_depend>cmake_modules</build_depend>
<run_depend>cmake_modules</run_depend>

CMakeLists.txt
find_package(catkin REQUIRED cmake_modules)
find_package(Eigen REQUIRED)

catkin_package(
INCLUDE_DIRS ...
LIBRARIES ...
CATKIN_DEPENDS ....
DEPENDS Eigen
)

include_directories(
...
${Eigen_INCLUDE_DIRS}
)

更新:请注意,以下内容不是必需的,因为 FindEigen.cmake模块未定义 Eigen_LIBRARIES因为它是一个只有头文件的库:
 target_link_libraries(my_target
....
${Eigen_LIBRARIES}
)

更多信息: http://wiki.ros.org/indigo/Migration#cmake_modules

更新 : 其实 <run_depend>cmake_modules</run_depend>不需要 cmake_modules不是运行时依赖项。

此外,您可以使用 ROS ecl 包装器: http://wiki.ros.org/ecl

关于cmake - 在 ROS Indigo 中使用特征库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com