在包中包含库cmake_ament

Include a library in cmake_ament package

提问人:rekkalmd 提问时间:11/8/2023 更新时间:11/10/2023 访问量:29

问:

ROS2 官方文档中的这个例子为例,我想将一个库添加到cmake_ament构建包之一。

在示例中,它们已经包含字符串库

#include std_msgs/msg/string.hpp

为:

auto message = std_msgs::msg::String();

//and other manipulations

我的任务是添加一个类似的现有库来操作类型。我在这里找到了它。UInt64

我懒惰的尝试是模仿这个例子,构建后,我得到了错误:#include std_msgs/msg/string.hpp

fatal error: std_msgs/msg/uint64.msg: No such file or directory
   22 | #include "std_msgs/msg/uint64.msg"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~

所以,我要求管理它的工作方法。

我的 CmakeLists.txt 包含:

find_package(std_msgs REQUIRED)
ament_target_dependencies(talker rclcpp std_msgs)
ament_target_dependencies(listener rclcpp std_msgs)
C++ CMake 包括 ROS2

评论


答:

1赞 Sux 11/10/2023 #1

.msg是错误的。您必须使用 #include“std_msgs/msg/uint64.hpp”或“std_msgs/msg/uint64.h”