编译ROS应用程序时,终端出现如下错误:
CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "roscpp" with any
of the following names:
roscppConfig.cmake
roscpp-config.cmake
Add the installation prefix of "roscpp" to CMAKE_PREFIX_PATH or set
"roscpp_DIR" to a directory containing one of the above files. If "roscpp"
provides a separate development package or SDK, be sure it has been
installed.
首先确认/opt/ros目录中有上述文件。
sudo find /opt/ros -name "roscppConfig.cmake" -o -name "roscpp-config.cmake"
如果该命令输出了类似于/opt/ros/noetic/share/roscpp/cmake/roscppConfig.cmake的路径,说明文件roscppConfig.cmake存在但CMake未找到。对于这种情况,在编译时,添加变量定义,例如
catkin_make -Droscpp_DIR=/opt/ros/noetic/share/roscpp/cmake
# 具体的定义,根据ROS版本和安装位置作相应的修改即可。
添加之后,没有出现找不到roscppConfig.cmake文件的错误了,但又出现了找不到其它文件的类似错误
CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "roscpp" with any
of the following names:
rosbagConfig.cmake
rosbag-config.cmake
Add the installation prefix of "roscpp" to CMAKE_PREFIX_PATH or set
"roscpp_DIR" to a directory containing one of the above files. If "roscpp"
provides a separate development package or SDK, be sure it has been
installed.
继续添加类似的变量定义即可,例如
catkin_make -Droscpp_DIR=/opt/ros/noetic/share/roscpp/cmake -Drosbag_DIR=/opt/ros/noetic/share/rosbag/cmake -Dsensor_msgs_DIR=/opt/ros/noetic/share/sensor_msgs/cmake -Dpcl_ros_DIR=/opt/ros/noetic/share/pcl_ros/cmake
按照上述方式编译,即可解决类似的错误。
1万+

被折叠的 条评论
为什么被折叠?



