CMake Error at /opt/ros/humble/share/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake:77 (message): ament_target_dependencies() the passed package name 'rclcpp' was not found
时间: 2023-08-10 14:09:37 浏览: 872
ament_cmake:支持CMake软件包以使用ament
这个错误提示说你的 CMake 找不到名为 'rclcpp' 的包。可能是因为你没有正确安装 ROS 或在 CMakeLists.txt 文件中没有正确声明依赖关系。
首先,请确保你已经正确地安装了 ROS 并设置好了环境变量。然后,检查你的 CMakeLists.txt 文件,是否正确地声明了依赖项。例如,如果你的包依赖于 rclcpp,应该在 CMakeLists.txt 文件中添加以下行:
```cmake
find_package(rclcpp REQUIRED)
```
然后,确保在使用 rclcpp 的任何地方都正确地链接该库。例如,在添加可执行文件时,应该包括以下行:
```cmake
add_executable(my_node src/my_node.cpp)
ament_target_dependencies(my_node rclcpp)
```
如果你已经执行了这些步骤,但仍然无法解决问题,请尝试重新编译你的代码并清除 CMake 缓存:
```bash
rm -rf build/
colcon build --symlink-install
```
这应该可以解决你的问题。
阅读全文