Skip to content

踩坑Robotics Stack Exchange3 个月前

ROS2 Lyrical构建报错Unknown CMake command ament_target。 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Cmake error: "Unknown CMake command "ament_target_dependencies"."(Robotics Stack Exchange #118519)

状态:已解决

问题 ​

在WSL Ubuntu 26.04环境下使用ROS2 Lyrical构建C++包proj_cpp时,CMakeLists.txt第13行调用ament_target_dependencies(cpp_node rclcpp)报错“Unknown CMake command”,导致colcon build失败。package.xml已正确声明ament_cmake与rclcpp依赖,环境配置无误,怀疑新版本移除了该宏支持。

环境 ​

WSL Ubuntu 26.04 on Windows 11, ROS2 Lyrical LTS, CMake 3.20+, ament_cmake构建类型

解决办法 ​

  1. 打开项目CMakeLists.txt文件,定位到原ament_target_dependencies(cpp_node rclcpp)调用行。
  2. 将该行替换为现代CMake标准写法:target_link_libraries(cpp_node PUBLIC rclcpp::rclcpp),注意目标名需与实际add_executable定义一致。
  3. 保存文件后重新执行colcon build命令完成构建。
  4. 若仍有链接问题,确认find_package(rclcpp REQUIRED)已存在且rclcpp::rclcpp目标可用。

原问题作者:Vanja;采纳答案作者:naibaf-1。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #118519:Cmake error: "Unknown CMake command "ament_target_dependencies"."访问 2026-10-27