我的ros软件包目录中除了src之外还有一个目录,并且包含目录,其中我的类头文件和源文件是:
my_dir / my_class
my_class.cpp
my_class.hpp
我已经在src目录中的cpp中编写了一个ros节点。 我已经在该节点中创建了一个对象。我应该如何配置cmake.txt和package.xml来了解此类定义?
我只想在节点文件之外有类定义!
动力学ros-Ubuntu 16.04-roscpp
答案 0 :(得分:2)
您不需要修改 package.xml ,但是您需要修改 CMakeLists.txt 。
添加其他包含目录(在您的情况下为: my_dir )
include_directories(
include ${catkin_INCLUDE_DIRS} my_dir
)
这允许包含标题,例如
#include <my_class.hpp>
要将源文件构建到节点或库中,只需将常见的 src 目录替换为您的特定目录(在您的情况下为 my_dir )
add_executable(your_node
src/your_node.cpp
my_dir/my_class.cpp
)
答案 1 :(得分:1)
如果您使用catkin_create_pkg
创建了程序包,通常只需调用catkin_make
来构建您的项目,则无需在package.xml中手动编写任何内容。
要查找您的程序在其他文件中定义的类,只需在您的节点中包含头文件即可,因为它确实与简单的C ++程序一样。
关于CMakeLists.txt,请参见here,最后几行将为您提供如何添加可执行文件。 CMakeLists.txt是自动生成的,并且您在其中注释了很多说明,请查看。它通过示例解释了您所需的一切,并且做得很好。
此外,您可以查看作为我参考的ros tutorials,以了解有关ROS的所有基础知识。
最后,您有了一个比ROS问题的stackoverflow更好的专业网站,它是ros answers。这是ROS用户的金矿。
希望您能找到答案:)