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

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-07-25-robotics-se-118519
> 频道：pitfalls | 更新日期：2026-07-25 | 标签：auto, stackexchange, ros2
> 核心摘要：ROS2 Lyrical中ament_target_dependencies命令失效，需替换为现代CMake的target_link_libraries链接rclcpp::rclcpp。

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

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Cmake error: "Unknown CMake command "ament_target_dependencies"."](https://robotics.stackexchange.com/questions/118519/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 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #118519：Cmake error: "Unknown CMake command "ament_target_dependencies"."](https://robotics.stackexchange.com/questions/118519/cmake-error-unknown-cmake-command-ament-target-dependencies)