首页 > 解决方案 > 在 cpp ros 节点中使用外部类

问题描述

除了 src 和 include 目录之外,我的 ros 包目录中有一个目录,其中我的类头文件和源文件是:

my_dir/my_class

我在 src 目录中的 cpp 中编写了一个 ros 节点。我在这个节点中创建了一个对象。我应该如何配置 cmake.txt 和 package.xml 以了解此类定义?

我只想在节点文件之外有类定义!

动力学 ros - ubuntu 16.04 - roscpp

标签: c++ros

解决方案


你不需要修改你的package.xml但你需要修改你的CMakeLists.txt

添加额外的包含目录(在您的情况下:my_dir

include_directories(
  include ${catkin_INCLUDE_DIRS} my_dir
)

这允许包含标题,如

#include <my_class.hpp>

要将源文件构建到您的节点或库,只需将 common src目录替换为您的特定目录(在您的情况下:my_dir

add_executable(your_node
  src/your_node.cpp
  my_dir/my_class.cpp
)

推荐阅读