我正在开发一个需要使用Eigen库的ROS Indigo项目.根据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)
Run Code Online (Sandbox Code Playgroud)
Jav*_*i V 10
只是为了完成后期,并在Answers ROS中回答这个问题:
如果您已经安装了Eigen(请检查sudo apt-get install libeigen3-dev),那么您必须将相应的行cmake_modules和Eigen行添加到CMakeLists.txt和package.xml文件中:
package.xml中
<build_depend>cmake_modules</build_depend>
<run_depend>cmake_modules</run_depend>
Run Code Online (Sandbox Code Playgroud)
的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}
)
Run Code Online (Sandbox Code Playgroud)
更新:请注意,以下不是必需的,因为FindEigen.cmake模块没有定义Eigen_LIBRARIES它是一个仅头文件库:
target_link_libraries(my_target
....
${Eigen_LIBRARIES}
)
Run Code Online (Sandbox Code Playgroud)
更多信息:http://wiki.ros.org/indigo/Migration#cmake_modules
更新:实际上<run_depend>cmake_modules</run_depend>不需要,因为cmake_modules它不是运行时依赖项.
此外,您可以使用ROS ecl包装器:http://wiki.ros.org/ecl
Eigen 不是 ROS 包,而是一个独立的库。因此,不必将其列为catkin的组件,只需添加一个单独的find_package调用即可:
find_package(Eigen REQUIRED)
Run Code Online (Sandbox Code Playgroud)
我现在无法仔细检查它(目前坐在一台带有 groovy 的机器上),但我很确定,这对我来说也适用于 indigo。
| 归档时间: |
|
| 查看次数: |
10287 次 |
| 最近记录: |